pm list instrumentation 没有内容的解决过程

这两天跑Android 4.0 自带的testCase,在短信模块,总遇到下面这个问题:

 

Syncing to device...
Remounting read-only filesystem
Waiting for device package manager...
Waiting for instrumentation to be present
Could not find instrumentation com.android.mms.tests/android.test.InstrumentationTestRunner on device. Does the instrumentation in test's AndroidManifest.xml match definitionin test_defs.xml?
Timed out waiting for response

--- 然后就退出来了,看到这个问题,很是郁闷,反复检查 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了一遍,就不行了,现在找到了解决问题的基本方法,下次不怕了。)


发布了67 篇原创文章 · 获赞 11 · 访问量 36万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章