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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章