当我尝试在设备上安装编译的.apk时,INSTALL_FAILED_UPDATE_INCOMPATIBLE

int*_*_32 282 android cyanogenmod android-4.0-ice-cream-sandwich android-4.2-jelly-bean

我从CyanogenMod 9编译了Trebuchet启动器,并试图用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]
Run Code Online (Sandbox Code Playgroud)

我试用了带有CM9的Nexus S和带有JB的Galaxy Nexus.为什么我收到此错误?

编辑:在我的情况下,我试图用包管理器重新安装系统包.那是不支持的,所以我有这个错误.在您的情况下,错误的来源可能会有所不同.

Mus*_*ven 491

这意味着您已安装了要安装的应用程序.只需删除旧的,然后再试一次.

  • 为我工作,但我也必须重启一次. (27认同)
  • 我不得不进入设置 - >管理应用程序来查找应用程序并选择从那里卸载它,因为它没有显示在其他地方. (27认同)
  • 也可能要求您从所有用户帐户卸载(我的Nexus 10有3个用户). (23认同)
  • 如果我只是尝试更新现有应用程序会怎样?这将删除我在本地保存的最后一个应用程序的所有内容 (2认同)

ein*_*rne 181

尝试

adb uninstall package-name
Run Code Online (Sandbox Code Playgroud)

这个对我有用.我已使用Titanium Backup删除了我的应用.但是,我认为Titanium备份并没有完全删除我的应用程序.


Jor*_*sys 98

卸载应用程序就足以避免此问题.

INSTALL_FAILED_UPDATE_INCOMPATIBLE
Run Code Online (Sandbox Code Playgroud)

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

转到Settings> Apps,您将找到包含以下消息的应用:

"没有为此用户安装" 在此输入图像描述

我们必须手动为所有用户卸载!,然后我们可以安装我们编译的应用程序没有问题.

在此输入图像描述

另一种选择:

  • 删除旧应用程序并重新安装.
  • 使用Android Debug Bridge命令:

    adb uninstall [PACKAGE NAME]

  • 谢谢!这就是我需要的.他们为什么以及何时开始这样做? (2认同)

dha*_*ram 21

有两种方法可行

1:手动从移动设备卸载应用程序

2:打开命令提示符,跟踪路径adb并执行以下命令

adb uninstall your_package_name
Run Code Online (Sandbox Code Playgroud)

  • 适用于没有显示器的设备的唯一方法。 (2认同)

int*_*_32 10

我刚刚重命名了包,它对我有用.

或者,如果您正在使用Ionic,您可以删除该应用程序并再试一次,当离子检测到您正在部署的应用程序不是来自同一版本时,会发生这种情况.它经常发生在您从PC更换时.

  • "我刚刚重命名了这个软件包",**这不是可以解决的问题,实际上你正在创建另一个应用程序!** (11认同)
  • 太多的工作,我备份并删除apk并重新安装它. (2认同)

小智 8

  1. 转至:您的adb文件夹\ sdk\platform-tools \
  2. 键入cmd
  3. 在命令窗口键入:adb remount
  4. adb shell
  5. rm /system/app/YourApp.apk
  6. 重启您的设备

  • 没有多大意义,因为用户apks不存储在`/ system/app`中,而是存储在`/ data/app`中 (2认同)

Rea*_*hed 8

问题是为什么他会出现此错误。卸载将解决此问题,但就我而言,当我安装APK的编译版本时,出现了问题。我正在尝试为我的应用程序构建更新。因此,我做了什么,我构建了一个签名的apk,然后尝试安装该apk,并完美安装了apk。因此,我不得不删除较新的更新,而不是删除旧的apk,然后安装了它。


Pix*_*xel 7

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

adb install -r myapk.apk
Run Code Online (Sandbox Code Playgroud)

覆盖设备上现有的 apk,但如果您使用与已安装 apk 不同的证书对新 apk 进行签名,您仍然会收到错误消息。

在这种情况下,您需要在尝试安装之前从设备中卸载 apk。但是,这也会影响您的应用程序,因为您的原始签名可能与某些开发人员 API 相关联,因此您可能需要使用新凭据更新控制台。


net*_*ein 6

这可能是因为您的设备中有多个用户,并且您刚刚删除了一个应用程序(让其他人仍然存在apk).

我已经在所有帐户中删除了,之后就可以使用了.