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

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


当前回答

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

其他回答

我安装了Astro文件管理器,并搜索了以前版本的apk-file,在sdcard上找到了一个,并使用Astro文件管理器删除了apk-file。

如果您的清单文件有这一行-

android:sharedUserId=“android.uid.system”

正在导致这个错误!只要评论这一行,你就可以去了!!

三星Galaxy手机有一个被称为安全文件夹删除应用程序的功能,为我解决了这个问题。

也adb卸载packagename不能从安全文件夹中删除应用程序。

这可能是因为你的设备中有多个用户,而你刚刚删除了其中一个用户的应用程序(为其他用户保留apk)。

我在所有账户上都删了,之后就有用了。

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

adb install -r myapk.apk

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

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