这两天跑Android 4.0 自带的testCase,在短信模块,总遇到下面这个问题:
--- 然后就退出来了,看到这个问题,很是郁闷,反复检查 test's AndroidManifest.xml 和 test_defs.xml 这两个文件中的mms的配置,没发现什么问题(还对照了其他可以跑起来的app的相关配置对比过。)
在同事的帮忙下,adb shell下用如下命令查看 instrumenation :
# pm list instrumentation
除了其他app的instrumentation外,还真没有关于mms的instrumentation,就郁闷了,怎么会没有 instrumentation 呢?
网上查阅一番,这个是需要安装对应的app的(即含有testcase的app),怎么会没有呢?怎么会没有呢????
查看启动测试时,系统自动build完app后,有这样一行log:
Install: out/target/product/generic/data/app/MmsTests.apk
(下面还有这样一行:Install: out/target/product/generic/system/app/MmsAppTests.apk ,MmsAppTest.apk 手动安装的过程中,不能成功安装的提示语和按装 MmsTests.apk,也就算说,他们应该是一个,想不明白,这里为什么是这个命名,因为 Android.mk 中,配置的 LOCAL_PACKAGE_NAME := MmsTests ,如果有知道的朋友,请在评论中答复一下,不胜感激。)
好吧,回来说发现上述log之后的操作步骤(反复试验失败的不说,这里捡重要的说)
到 MmsTests.apk 所在目录文件夹下,用 adb install MmsTests.apk 安装,总是出现如下错误提示:
196 KB/s (12046 bytes in 0.059s)
pkg: /data/local/tmp/MmsTests.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]
既然MmsTests.apk已经存在,怎么又没有instrumenation呢?于是到设备上查看app,居然没有找到 MmsTests.apk ,在设备上 /data/local/tmp/ 目录下也未找到,提示中的MmsTests.apk 。设备上没有,又不让我安装,怎么回事?(这里我也未找到原因,知道的朋友请答复一下,谢谢!) 中间还尝试过卸载 MmsTests.apk,不过没成功。
在网上搜索了一番,也有人遇到同样的问题,有人给出解答:
Include the -r flag to indicate it's a re-install. Ex: "adb install -r
TEST_V2.apk"
TIp: type "adb" with no argument in the command line to see a list of
available commands and flags.
(地址:http://groups.google.com/group/android-developers/browse_thread/thread/2d27c8829d4c75cf)
于是, adb install -r MmsTests.apk ,问题解决!
最后的解决方案其实也不复杂,但这个过程一步步下来,感觉不容易,中间遇到了不少问题,不过“一步一步进行定位”这种方式还是不错的。(其实,前天不知道怎么弄的,是可以跑的起来的,今天重新build了一遍,就不行了,现在找到了解决问题的基本方法,下次不怕了。)