Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE錯誤解決措施

來源:互聯網
上載者:User

標籤:

晚上在測一個widget,前面測的好好的,後面再安裝的時候發現如下錯誤:
[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!

很顯然,發生一個錯誤:INSTALL_FAILED_UPDATE_INCOMPATIBLE

google...

找到原因:
http://xusaomaiss.javaeye.com/blog/393296
在反覆安裝android apk的時候,有的時候可能會遇到adb install錯誤,內容是:Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
這很可能是因為你在以前uninstall應用的時候,沒有做徹底,只是簡單的rm /data/app/下面的apk檔案了,一個補救的辦法如下:
啟動模擬器,然後進入菜單
settings->applications->mange
applications-> select the application->select "unistall".
這樣就能徹底刪除了,然後再重新安裝這個apk就沒問題了
另外一個辦法就是將/data/system/packages.xml中該應用相應的資訊刪掉,重啟模擬器再安裝即可,因為adb install後,會在packages.xml中添加相應的程式資訊。

然而,在這裡都不可以使用:
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)如果使用到了資料庫,首次運行後/data/data下增加了個apk使用到的資料目錄


卸載方式有如下幾種:
1)優雅式:通過介面 settings-->applications-->manage applications-->找到應用-->application Info-->uninstall 就可以正常卸載應用了。
2)粗暴式 直接到/data/app目錄下刪除apk
adb shell
cd /data/app
rm xxx.apk

不推薦這種方式,只刪除了apk,如果應用還有其他的目錄,如資料庫目錄/data/data/xxx/databases/並沒有清理乾淨,留有隱患。
3)隱藏式:
adb uninstall package-name (這個在adb的協助文檔中沒有說明,但可以用)
什麼,不知道package-name?看看你的AndroidManifest.xml中有個必須的屬性就是package,它所指定的就是package-name。

PS. android中package和application不是一個東西,但也沒有看到清楚的解釋。能否這樣理解:
package是物理概念,application是運行期的邏輯概念?

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!

轉自http://www.eoeandroid.com/viewthread.php?tid=640

Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE錯誤解決措施

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.