Calvin's Tech Space

          成于堅(jiān)忍,毀于浮躁

             :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理

          晚上在測(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
          posted on 2010-01-31 19:27 calvin 閱讀(29980) 評(píng)論(3)  編輯  收藏 所屬分類: Android

          Feedback

          # re: Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE錯(cuò)誤解決措施 2015-02-13 10:15 lucythq
          幫我大忙了,終于安裝成功了,謝謝謝謝  回復(fù)  更多評(píng)論
            

          # re: Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE錯(cuò)誤解決措施 2016-04-20 11:39 xhz
          感謝樓主
          #adb uninstall com.xxx.xxx
          解決了我的問(wèn)題  回復(fù)  更多評(píng)論
            

          # re: Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE錯(cuò)誤解決措施 2016-04-20 13:42 xhz
          樓主:
          經(jīng)查詢,adb uninstall + 包名, 才是卸載應(yīng)用的正確用法(有些博客里講卸載應(yīng)用的命令都寫錯(cuò)了),后面跟的參數(shù)是應(yīng)用的包名,而非apk文件名;
          adb install 后跟的才是apk文件名。


          adb install [-l] [-r] <file> - push this package file to the device and install it
          ('-l' means forward-lock the app)
          ('-r' means reinstall the app, keeping its data)
          adb uninstall [-k] <package> - remove this app package from the device
          ('-k' means keep the data and cache directories)

          如:
          adb install d:\hello.apk
          adb unstall com.huawei.hello   回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 桐乡市| 连南| 溧阳市| 富宁县| 马尔康县| 威远县| 乌兰浩特市| 连江县| 赤峰市| 海林市| 甘洛县| 两当县| 大兴区| 白山市| 闵行区| 庆安县| 崇礼县| 墨江| 报价| 会宁县| 湘西| 探索| 于田县| 礼泉县| 桃源县| 大余县| 维西| 石屏县| 克山县| 巴楚县| 淮阳县| 额敏县| 洮南市| 炉霍县| 福海县| 巴林右旗| 高密市| 嘉黎县| 宜兰县| 嫩江县| 兰溪市|