Android,UPDATE,FAILED,INCOMPATIBLE,INSTALL 晚上在测一个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 Launcheractivityfound! [2009-06-07 02:46:00 - battery] The launch will only sync theapplication package on the device! 很显然,发生一个错误:INSTALL_FAILED_UPDATE_INCOMPATIBLE google... 找到原因:http://xusaomaiss.javaeye.com/blog/393296 在反复安装androidapk的时候,有的时候可能会遇到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! OK,成功了,share~