晚上在測一個widget,前面測的好好的,后面再安裝的時候發(fā)現(xiàn)如下錯誤:
[2009-06-07 02:39:35 - battery] Performing sync
[2009-06-07 02:39:35 - battery] Automatic Target Mode: using device 'HT843GZ03305'
[2009-06-07 02:39:35 - battery] Uploading battery.apk onto device 'HT843GZ03305'
[2009-06-07 02:39:35 - battery] Installing battery.apk...
[2009-06-07 02:39:40 - battery] Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
[2009-06-07 02:39:40 - battery] Please check logcat output for more details.
[2009-06-07 02:39:40 - battery] Launch canceled!
[2009-06-07 02:46:00 - battery] ------------------------------
[2009-06-07 02:46:00 - battery] Android Launch!
[2009-06-07 02:46:00 - battery] adb is running normally.
[2009-06-07 02:46:00 - battery] No Launcher activity found!
[2009-06-07 02:46:00 - battery] The launch will only sync the application package on the device!
很顯然,發(fā)生一個錯誤:INSTALL_FAILED_UPDATE_INCOMPATIBLE
google...
找到原因:
http://xusaomaiss.javaeye.com/blog/393296
在反復(fù)安裝android apk的時候,有的時候可能會遇到adb install錯誤,內(nèi)容是:Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
這很可能是因為你在以前uninstall應(yīng)用的時候,沒有做徹底,只是簡單的rm /data/app/下面的apk文件了,一個補(bǔ)救的辦法如下:
啟動模擬器,然后進(jìn)入菜單
settings->applications->mange
applications-> select the application->select "unistall".
這樣就能徹底刪除了,然后再重新安裝這個apk就沒問題了
另外一個辦法就是將/data/system/packages.xml中該應(yīng)用相應(yīng)的信息刪掉,重啟模擬器再安裝即可,因為adb install后,會在packages.xml中添加相應(yīng)的程序信息。
然而,在這里都不可以使用:
1、widget不在mange applications列表中;
2、/data/system/packages.xml中無這個app信息,且修改麻煩
再找...
http://iame.javaeye.com/blog/391455
制作好apk后(必須簽名),通過adb install xx.apk后,
1)apk文件放在了/data/app/目錄下
2)/data/system/packages.xml中增加了條記錄
3)如果使用到了數(shù)據(jù)庫,首次運(yùn)行后/data/data下增加了個apk使用到的數(shù)據(jù)目錄
卸載方式有如下幾種:
1)優(yōu)雅式:通過界面 settings-->applications-->manage applications-->找到應(yīng)用-->application Info-->uninstall 就可以正常卸載應(yīng)用了。
2)粗暴式 直接到/data/app目錄下刪除apk
adb shell
cd /data/app
rm xxx.apk
不推薦這種方式,只刪除了apk,如果應(yīng)用還有其他的目錄,如數(shù)據(jù)庫目錄/data/data/xxx/databases/并沒有清理干凈,留有隱患。
3)隱藏式:
adb uninstall package-name (這個在adb的幫助文檔中沒有說明,但可以用)
什么,不知道package-name?看看你的AndroidManifest.xml中有個必須的屬性就是package,它所指定的就是package-name。
PS. android中package和application不是一個東西,但也沒有看到清楚的解釋。能否這樣理解:
package是物理概念,application是運(yùn)行期的邏輯概念?
OK,試試:
F:"publish>adb uninstall com.anrdroid.test
Success
成功刪除,再裝:
[2009-06-07 02:48:45 - battery] Performing sync
[2009-06-07 02:48:45 - battery] Automatic Target Mode: using device 'HT843GZ03305'
[2009-06-07 02:48:45 - battery] Uploading battery.apk onto device 'HT843GZ03305'
[2009-06-07 02:48:45 - battery] Installing battery.apk...
[2009-06-07 02:48:49 - battery] Success!
[2009-06-07 02:48:49 - battery] "battery"bin"battery.apk installed on device
[2009-06-07 02:48:49 - battery] Done!
轉(zhuǎn)自
http://www.eoeandroid.com/viewthread.php?tid=640