Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3426391
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: 嵌入式

2011-06-23 14:21:31

1.       cmd命令行中输入android list target出现android不是内部或外部命令

   新建一个环境变量ANDROID_HOME=你的sdk所在目录

然后在 path 中加入 %ANDROID_HOME%\tools

 

2. 移除程式

我們已經順利地啟動了虛擬機器,那麼,該怎麼移除安裝到虛擬機器上的程式哩?

Android SDK 中提供一個 adb (Android Debugger) 命令行工具 ( android-sdk/tools ),我們可以用裡面的 shell 工具連上虛擬機器來移除應用程式。在某些平台上,這些動作可能需要擁有 root 權限才能執行。

首先打開命令列,啟動 adb shell

    $ adb shell

接著切換到 data/app 目錄中

    $ cd data/app/

使用 ls 命令(等同 windows 上命令行的 dir 命令)來檢視檔案列表

    # ls 

    com.example.android.apis.apk

接著使用 rm 命令來刪除 ApiDemos 應用程式

    # rm com.example.android.apis.apk 

    # ls

我們可以使用「android list avd」命令來列出所有的虛擬機器

$ android list avd 

Available Android Virtual Devices: 

    Name: eclair 

    Path: /Users/mac/.android/avd/cupcake.avd 

  Target: Android 2.0 (API level 5) 

    Skin: HVGA

表示現在系統中有一個名為 eclair 的虛擬機器。 我們可以使用「android delete avd --name eclair」命令來刪除名稱為「eclair」的虛擬機器。

$ android delete avd --name eclair 

AVD 'eclair' deleted.

刪除後再次執行「android list avd」命令,得到的結果為

$ android list avd 

Available Android Virtual Devices:

表示系統中已經不存在任何模擬器,我們真的已經將虛擬機器刪除了。

 

 

3. 出现“Project has no target set. Edit the project properties to set one.”的错误

Eclipse导入步骤:
 1. File.../Import.../General/Existing Projects into Workspace
 2.
Browse按钮,选择要导入的项目所在目录,点Finish
 3.
如果出现“Project has no target set. Edit the project properties to set one.”的错误,则需要在该项目的属性里选中Project Build TargetAndroid版本
 4.
文件夹中会自动追加一个gen的小目录,里面是自动生成的R.java文件,如果导入的文件中已有R.java,则会报错,此时只要将原来的R.java文件删掉即可。

如果有提示关于AndroidManifest.xml的错误,请选中此项目,并右键选择Android Tools->Fix Project,将会自动帮你修复错
误。

 

 

4. Could not find *.apk

1) 选择工程的Properties->Java Build Path->Libraries,去掉默认的Android包;

2) 点击左侧的Android标签,在右边的Project Build Target中选择Android 2.0

3) 右键单击工程,选择Android Tools->Fix Project Properties.

有时候也可能是jdk版本的问题,改了jdk版本后,重启下eclipse

 

5emulator: ERROR: the user data image is used by another emulator. Aborting

没有正常关闭导致的,删除android-sdk-windows\.android\avd\对于版本\下的以.lock结尾的文件夹就行

 

6. qemu: could not open disk image E:\Android\sdcard.img

  待解决

 

7. music player时需要在sdcard中加入文件

今天试用一下androidmusic player.运行music player,点击songs,显示如图:

 

原来,默认android没有加载sdcard,为了播放歌曲我们需要让android模拟张sdcard,具体操作如下:

D:\Tools\Android\android-sdk-windows-1.5_r1\tools>mksdcard.exe -l sdcard 256M E:
\study\android\sdcard.img

启动android时,需要指定sdcard,操作如下:

D:\Tools\Android\android-sdk-windows-1.5_r1\tools>emulator.exe -avd myroid -sdca
rd e:\study\android\sdcard.img

接下来,还需要在卡里放几首歌曲。需要使用到另一个工具ddms.bat,如下图:

点击Device—>FileExplorer,可以看到android系统的所有目录及文件,包括新创建的sdcard

选中sdcard,点击toolbar上的push file onto Device,选择你要上传的音乐:

文件传好,就可以看到sdcard上显示的音乐了:

这时重新启动android,再运行music player点击songs,就可以看到sdcard里放入的音乐了:

选择歌曲就开始播放了:

 

回到桌面,可以看到music playerwidget显示正在播放的歌曲:

怎么样,android还是挺有趣的吧,不过这里暂且报告几个使用过程中的androidbug(也许不是bug,只是我

还不会玩,:))

1.使用ddmsfile explorer传输中文名称的文件不行,控制台显示如下错误:

55:41 E/ddms: transfer error: Invalid argument
Failed to push
水木年华-启程.wma on emulator-5554: Invalid argument

2.使用file explorer上传文件到sdcard上,需要重启android,music player才能看到sdcard上的媒体文件。

3.androidmusic playermp3id3 tag信息中文还是有乱码,如下图:

 

今天就到这里吧,下回要学习一下怎么开发个androidwidget了。

 

 

8. 程序启动处错误the application 。。。source not find

解决:F11 调试 ,F6单步调试(加上断点),可以发现 “source not find ”的错误,

看了一下 问题出在了 Acitvity这里 到 文档里面 包:android.app.Activity里面看了下

如下:我标上了黄色的底纹的地方,问题就出在这里了,我虽然新建了一个活动但是我没有把这个活动注册到  AndroidManifest.xml. 这个文件里面。

下面是关于Activity的简单的介绍,很容易看懂,大概就是 ,活动是什么,子类可以实现   方法,还介绍了 一下生命周期等。

 

9. Failed to push Angels.mp3 on emulator-5554: Read-only file system

打开cmd 运行如下命令

mksdcard -l sdcard 256M E:\Android\test\sdcard.img

emulator -avd tm -sdcard E:\Android\test\sdcard.img

 

 

再打开cdm 运行

adb push F:\MP3\EnglishSong\Angels.mp3 sdcard

(如果是用MediaStore获取歌曲列表,添加完后,进入模拟器,进入Dev Tools,里面有个Media Scanner.运行一下。ok现在进入应用就能看到歌曲列表了)

后查看sdcard 如下图:

 

10. Console

[2010-03-26 10:18:34 - TestMediaPlayer]Installation failed due to invalid APK file!

[2010-03-26 10:18:34 - TestMediaPlayer]Please check logcat output for more details.

[2010-03-26 10:18:34 - TestMediaPlayer]Launch canceled!

LogCat

03-26 02:18:33.950: DEBUG/asset(59): failed to open Zip archive '/data/app/vmdl10030.tmp'

03-26 02:18:33.959: WARN/PackageParser(59): Unable to read AndroidManifest.xml of /data/app/vmdl10030.tmp

03-26 02:18:33.959: WARN/PackageParser(59): java.io.FileNotFoundException: AndroidManifest.xml

03-26 02:18:33.959: WARN/PackageParser(59):     at android.content.res.AssetManager.openXmlAssetNative(Native Method)

03-26 02:18:33.959: WARN/PackageParser(59):     at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:469)

03-26 02:18:33.959: WARN/PackageParser(59):     at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:437)

03-26 02:18:33.959: WARN/PackageParser(59):     at android.content.pm.PackageParser.parsePackageName(PackageParser.java:560)

03-26 02:18:33.959: WARN/PackageParser(59):     at com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:4237)

03-26 02:18:33.959: WARN/PackageParser(59):     at com.android.server.PackageManagerService.access$1600(PackageManagerService.java:109)

03-26 02:18:33.959: WARN/PackageParser(59):     at com.android.server.PackageManagerService$5.run(PackageManagerService.java:3768)

03-26 02:18:33.959: WARN/PackageParser(59):     at android.os.Handler.handleCallback(Handler.java:587)

03-26 02:18:33.959: WARN/PackageParser(59):     at android.os.Handler.dispatchMessage(Handler.java:92)

03-26 02:18:33.959: WARN/PackageParser(59):     at android.os.Looper.loop(Looper.java:123)

03-26 02:18:33.959: WARN/PackageParser(59):     at android.os.HandlerThread.run(HandlerThread.java:60)

03-26 02:18:33.959: ERROR/PackageManager(59): Couldn't find a package name in : /data/app/vmdl10030.tmp

根据以上提示找不到AndroidManifest.xml文件,将R.Java删除,重新运行就可以了

 

11. java.net.SocketException: Permission denied (maybe missing INTERNET permission)

这是一个经典错误, Socket不能对外连接,错误不会被报出,调试的时候,能看到Exception, 这个Exception会有很多变体, 所以不一一举例,只要存在网络互联,
该东东挺身而出,让你的程序不得运行。

原因是: 需要访问到网络,所以,在AndroidManifest.xml中,需要进行如下配置:

 

or

" android:name="android.permission.INTERNET">


12. 如何避免打开键盘或横竖屏切换,active重启? 在androidmanifest.xml中的activity标签加入这个属性android:configChanges=”orientation|keyboardHidden” 然后重载onConfigurationChanged(Configuration newConfig)这个方法 public void onConfigurationChanged(Configuration config) { super.onConfigurationChanged(config); }

13. 如何处理界面的延迟动画 用Thread.sleep()是不行的,要用android.os.Handler,例如: class RefreshHandler extends Handler { public void handleMessage(Message msg) { Main.this.updateUI(); } public void sleep(long delayMillis) { this.removeMessages(0); sendMessageDelayed(obtainMessage(0), delayMillis); } };
阅读(1948) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

tianbianfei2011-07-14 11:04:03

楼主,请帮忙解决一个问题好吗?http://doumiw.com/market/community/t!showTopic.do?topicId=24