晚上在測(cè)一個(gè)widget,前面測(cè)的好好的,后面再安裝的時(shí)候發(fā)現(xiàn)如下錯(cuò)誤:
[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ā)生一個(gè)錯(cuò)誤:INSTALL_FAILED_UPDATE_INCOMPATIBLE
google...
找到原因:
http://xusaomaiss.javaeye.com/blog/393296
在反復(fù)安裝android apk的時(shí)候,有的時(shí)候可能會(huì)遇到adb install錯(cuò)誤,內(nèi)容是:Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
這很可能是因?yàn)槟阍谝郧皍ninstall應(yīng)用的時(shí)候,沒(méi)有做徹底,只是簡(jiǎn)單的rm /data/app/下面的apk文件了,一個(gè)補(bǔ)救的辦法如下:
啟動(dòng)模擬器,然后進(jìn)入菜單
settings->applications->mange
applications-> select the application->select "unistall".
這樣就能徹底刪除了,然后再重新安裝這個(gè)apk就沒(méi)問(wèn)題了
另外一個(gè)辦法就是將/data/system/packages.xml中該應(yīng)用相應(yīng)的信息刪掉,重啟模擬器再安裝即可,因?yàn)閍db install后,會(huì)在packages.xml中添加相應(yīng)的程序信息。
然而,在這里都不可以使用:
1、widget不在mange applications列表中;
2、/data/system/packages.xml中無(wú)這個(gè)app信息,且修改麻煩
再找...
http://iame.javaeye.com/blog/391455
制作好apk后(必須簽名),通過(guò)adb install xx.apk后,
1)apk文件放在了/data/app/目錄下
2)/data/system/packages.xml中增加了條記錄
3)如果使用到了數(shù)據(jù)庫(kù),首次運(yùn)行后/data/data下增加了個(gè)apk使用到的數(shù)據(jù)目錄
卸載方式有如下幾種:
1)優(yōu)雅式:通過(guò)界面 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ù)庫(kù)目錄/data/data/xxx/databases/并沒(méi)有清理干凈,留有隱患。
3)隱藏式:
adb uninstall package-name (這個(gè)在adb的幫助文檔中沒(méi)有說(shuō)明,但可以用)
什么,不知道package-name?看看你的AndroidManifest.xml中有個(gè)必須的屬性就是package,它所指定的就是package-name。
PS. android中package和application不是一個(gè)東西,但也沒(méi)有看到清楚的解釋。能否這樣理解:
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