1.问题:控制台出现emulator: ERROR: the user data image is used by another emulator. aborting提示
原因:没有正确关闭模拟器
解决:在进程中结束adb.exe,重启Eclipse即可。
2.问题:出现 emulator-5554 disconnected! Cancelling xxxxxx activity launch'!
解决:run里面有一个run configrations,在里面有一个选项每次运行都察掉记录 wipe out user data,选上该选项。.
3.问题:出现 sdl_app: emulator-arm.exe应用程序错误。
解决:网上有说关闭杀毒软件的,但关闭重启后还是出错。删除该AVD,新建。在新建的过程中Snapshot 下选择enable项。
4.问题:操作raw目录下数据库文件找不到在SD卡创建的路径。
解决:没有添加访问权限。
android模拟器开发调试错误SDL_app:emulator.exe ,内存不能为written的解决办法
在网上找了好多方法,下面的方法比较实在,可以解决我机器上产生的问题。问题根源:配置出错,sd卡路径、大小,skin的分辨率,特别是skin分辨率没有设置好,导致问题严重。解决办法:
1、找到android模拟器安装目录:C:\Documents and Settings\Administrator\.android\avd\AVD23.avd
2、编辑config.ini文件,就是这块配置错误导致错误产生。
3、如果硬盘空间比较紧张,可以把模拟器文件放到其它盘符上:你可以在命令行下用mkcard创建一个SDCARD文件,如: mksdcard 50M D:\sdcard.img
4、下面代码可以整个覆盖原来的config文件 hw.sdCard=yes hw.lcd.density=240 skin.path=800×480 skin.name=800×480 vm.heapSize=24 sdcard.path=D:\sdcard.img hw.ramSize=512 image.sysdir.1=platforms\android-8\images\
5、OK,模拟器正常运行
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !
部署好cygwin,编译一下NDK自带的sample,报错:“ Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk ! ” 原来NDK自带了一个awk.exe, Host 'awk' tool is outdated. 已经过期。找了下解决方案,最直接的办法是到NDK的host目录 —— D:\android\android-ndk-r7\prebuilt\windows\bin\awk.exe ,把这个过期的awk.exe 删除掉,这样解析时,找不到自带的awk就去调用cygwin的默认awk解析awk文件。然后就OK了。
XML 特殊字符处理
在XML中,有一些符号作为XML 的标记符号,一些特定情况下,属性值必须带有这些特殊符号。 下面主要是讲解一些常用的特殊符号的处理
例一: 双引号的使用。
双引号作为XML 属性值的开始结束符号,因此无法在值中直接使用"". 处理方式可以分为两种。
a: 属性值中没有'(单引号) ,那么可以用单引号'' 作为属性值的开始结束符号
<add key="IPhone" value="apple"/> ...属性值为 ("apple").
解决: <add key="IPhone" value=’"apple"‘/>
b: 属性值中有'(单引号) ,也有双引号。 如...属性值为 ("'apple").
<add key="IPhone" value=""'apple""/>
下表为 XML 标记使用的字符列出了五种内置实体。
实体 | 实体引用 | 含义 |
lt | < | <(小于号) |
gt | > | >(大于号) |
amp | & | &(“and”符) |
apos | ' | '(撇号或单引号) |
quot | " | "(双引号) |
如果字符可能会使 XML 分析器错误地解释文档结构,请使用实体,而不要键入字符。' 和 "
listview不能响应
如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了,也就会响应onItemClickListener中的onItemClick()方法,然而将ListView的Item Layout的子控件focusable属性设置为false有点繁琐,我们可以通过对Item Layout的根控件设置其android:descendantFocusability=”blocksDescendant”即可.
通过wifi调试android程序
首先让android手机监听指定的端口:
这一步需要使用shell,因此手机上要有终端模拟器,不过网上很多,随便找个就行了,依次敲入下列几行:
[html] view plain copy
- su//获取root权限
- setprop service.adb.tcp.port 5555//设置监听的端口,端口可以自定义,如5554,5555是默认的
- stop adbd//关闭adbd
- start adbd//重新启动adbd
手机连接wifi并确保手机和电脑连接同一个网络,记下手机的ip地址,假设为a.b.c.d
电脑上打开命令提示符,敲入以下命令:
[html] view plain copy
- adb connect a.b.c.d//如果不输入端口号,默认是5555,自定义的端口号必须写明,对应第1步中自定义的端口号,例如:a.b.c.d:5554
配置成功,命令行显示:“connected to a.b.c.d”,然后就可以调试程序了,^_^。
要关闭wifi调试,也很简单,只需要把端口号设置为-1,并且重复第一步即可。
ndroid在adb shell里打开某个APP
打开浏览器:
# am start -n com.android.browser/com.android.browser.BrowserActivity
调用浏览器打开某个网站:
# am start -a android.intent.action.VIEW -d http://www.china.com
查看系统Activity的启动信息
连接MID至调试模式
开始--运行--CMD
输入:adb logcat ActivityManager:* *:S
Google Map V2 模拟器使用google play service:
Create a new emulator
- for device choose "5.1'' WVGA (480 x 800: mdpi)"
- for target choose "Android 4.1.2 - API level 16"
- for "CPU/ABI" choose "ARM"
- leave rest to defaults
these are the settings that are working for me. I don't know for different ones.
Start the emulator
install com.android.vending-1.apk and com.google.android.gms-1.apk via ADB install command