我已经从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。为什么我得到这个错误?

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


当前回答

如果使用不同的证书签署应用程序,就会发生这种情况。你可以用

adb install -r myapk.apk

覆盖您设备上现有的apk,但如果您使用与已安装的apk不同的证书签署新的apk,则仍然会得到错误。

在这种情况下,在尝试安装之前,您需要从设备上卸载apk。但是,这也会影响您的应用程序,因为您原来的签名可能绑定到某些Developor API,因此您可能需要使用新的凭据更新控制台。

其他回答

你必须从不同的计算机上安装应用程序。对我来说,问题就出在这里。所有你需要做的只是卸载应用程序,重新安装或运行它从你正在工作的计算机。这可能是一个晚答复,但它将帮助一些人。谢谢

它发生在我身上,当我安装了一个开发构建使用即时运行,并从谷歌播放卸载。由于某种原因,即时运行的数据仍然在设备中,无法再次安装/卸载应用程序。

唯一的解决办法是: -在android studio中禁用即时运行 -从android studio安装(它应该只在这里工作) -卸载app

现在应该可以从谷歌Play或adb安装了。

在我的情况下,我得到这个错误,但应用程序不显示在模拟器。在这种情况下,尝试使用adb命令卸载apk

adb uninstall <package-name>

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

只需运行adb uninstall {{package_name}}。就是这样。现在您可以尝试构建。