我已经从CyanogenMod 9编译了Trebuchet launcher,并试图用adb安装它:

$ adb install out/target/product/generic/system/app/Trebuchet.apk
3986 KB/s (7870141 bytes in 1.928s)
    pkg: /data/local/tmp/Trebuchet.apk
Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

我用CM9试了Nexus S,用JB试了Galaxy Nexus。为什么我得到这个错误?

编辑:在我的情况下,我尝试用包管理器重新安装系统包。这是不支持的,所以我得到这个错误。在不同的情况下,错误的来源可能不同。


当前回答

问题是为什么他会得到这个错误。卸载将解决这个问题,但在我的情况下,当我安装apk的编译版本时,问题就出现了。我在试着更新我的应用程序。所以我做了什么,我建立了一个签名的apk,然后尝试安装apk, apk安装完美。因此,我不得不删除旧的apk,而是签署更新后再安装它。

其他回答

如果APK是内置在Android项目中。可文件。可能是因为签名证书被更改了。

在我的问题中,我添加了LOCAL_CERTIFICATE:=平台。因为原来的apk签名时没有这个标签。

我只是重命名了包,它为我工作。

或者如果你正在使用Ionic,你可以删除应用程序,然后再试一次,当Ionic检测到你正在部署的应用程序不是来自同一个版本时,就会发生这种情况。这种情况经常发生在你从pc换电脑的时候。

卸载应用程序就足以避免这个问题。

INSTALL_FAILED_UPDATE_INCOMPATIBLE

但有时甚至卸载消息再次被提出,它发生在Android OS 5.0 +,所以这是解决方案:

转到设置>应用程序,你会发现你的应用程序的信息:

“未为此用户安装”

我们必须手动卸载所有用户!,然后我们就可以安装编译好的应用程序了。

另一个选项:

删除旧的应用程序并重新安装。 使用Android调试桥命令: adb卸载[包名]

我得到了同样的问题,并做了以下修复它。

设置>存储>清除缓存数据 应用程序>卸载显示在那里的应用程序。我已经卸载了我的应用程序,但它仍然显示在那里。 重新启动,然后一切正常。

转到:您的adb文件夹\sdk\platform-tools\ 键入cmd 类型:adb remount on命令窗口 亚行壳 苏 rm /系统/应用程序/ YourApp.apk 重新启动设备