Android中出现的一些BUG的解决方法

在使用Android的过程中,我们经常会遇到一些BUG,下面是欧柏泰克和大家分享的几个Android的BUG的解决办法,希望能帮助到大家:

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 SettingsAdministrator.androidavdAVD23.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=platformsandroid-8images

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:androidandroid-ndk-r7prebuiltwindowsbinawk.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

"

"(双引号)

如果你的自定义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,因此手机上要有终端模拟器,不过网上很多,随便找个就行了,依次敲入下列几行:

1

2

3

4

su//获取root权限 

setprop service.adb.tcp.port 5555//设置监听的端口,端口可以自定义,如55545555是默认的 

stop adbd//关闭adbd 

start adbd//重新启动adbd

 

手机连接wifi并确保手机和电脑连接同一个网络,记下手机的ip地址,假设为a.b.c.d

电脑上打开命令提示符,敲入以下命令:

1

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值