我已经从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,因此您可能需要使用新的凭据更新控制台。

其他回答

我只是花了一个小时试图调试这个,然后意识到我连接到我的模拟器,而不是我的手机。所以即使我成功地删除了我手机上的应用程序,它仍然失败。愚蠢的错误,但也许这能帮助到其他人。

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

adb uninstall <package-name>

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

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

就我而言,我无法通过设备管理器或Astro找到这款应用的任何版本。

我最后做的是:

1)从应用商店下载最新版本的App

2)在重启设备之前,应用程序在设备管理器中仍然不可见。

3)从设备管理器中删除应用程序

4)重新运行我的项目

5)一切正常

希望这对大家有所帮助

C:\android-sdk\platform-tools\adb.exe:命令失败,退出码为1 错误输出:adb: failed to install android应用程序平台\ \ \ \ apk \调试\ app \制造\输出app-debug.apk: 失败[install_failed_update_compatible: Package . sh com.example。App1签名与之前安装的不匹配 版本;忽略!]

解决方案:

你手机上已经安装了app app1(大多是从play控制台下载,或者上传键更改) 卸载应用程序。

更多的细节:

这是可能的,你已经有这个应用程序上传到播放商店使用上传键,播放控制台应用自己的签名。这就是为什么从谷歌play下载的手机应用程序没有与你的上传密钥相同的签名。

通过卸载应用程序,没有游戏商店版本的应用程序,所以不匹配当你安装一个新版本到你的手机。

希望这能有所帮助。