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

问题描述 投票:266回答:23

我从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]

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

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

android android-4.0-ice-cream-sandwich android-4.2-jelly-bean cyanogenmod
23个回答
483
投票

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


4
投票

如果您的设备支持多个用户,则可能还必须删除每个帐户的应用。

我通常使用adb,这就是技巧adb uninstall <your-package-name>


3
投票

如果APK是在Android.mk文件的项目中构建的。也许是因为签名证书已被更改。

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


3
投票

如果您使用其他证书对应用程序进行签名,则会发生这种情你可以随时使用

adb install -r myapk.apk

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

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


2
投票

在我的情况下,我没有通过设备管理器或Astro找到的应用程序版本。

我最终做的是:

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

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

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

4)再次运行我的项目

5)一切正常

希望这有助于某人


1
投票

转到设置/应用/搜索您的应用并取消...

这对我有用


1
投票
  1. 转到设置/应用/搜索您的应用并卸载...
  2. 打开命令提示符和“adb uninstall”

这对我有用


1
投票

对于MIUI用户,除了通常的USB调试选项外,还要确保启用这些设置:

通过USB安装 USB调试(安全设置)

然后再次尝试安装应用程序时接受提示。


1
投票

我遇到了同样的问题并做了以下修复。

  1. 设置>存储>清除缓存数据
  2. 设置>应用>卸载显示在那里的应用。我已经卸载了我的应用程序,但它显示在那里。
  3. 重启然后一切都很顺利。

1
投票

C:\ android-sdk \ platform-tools \ adb.exe:命令失败,退出代码为1

错误输出:adb:无法安装app \ platforms \ android \ app \ build \ outputs \ apk \ debug \ app-debug.apk:失败[INSTALL_FAILED_UPDATE_INCOMPATIBLE:包com.example.app1签名与以前安装的版本不匹配;忽略!]

解:

您已经在手机上安装了应用程序app1(主要是从播放控制台下载,或上传密钥已更改) 卸载应用程序。

更多细节:

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

通过卸载应用程序,没有应用商店版本的应用程序,因此在您为手机安装新版本时不匹配。

希望有所帮助。


0
投票

在我的情况下,我已经从Playstore安装了应用程序,之后我尝试从Eclipse或Android Studio运行,因此它将尝试再次安装在不允许的APK上。

首先,您必须卸载已签名的APK,之后您必须尝试。

谢谢。


174
投票

尝试

adb uninstall package-name

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


0
投票

RankoR @您必须已从其他计算机安装该应用程序。在我的情况下,问题出现的地方..你需要做的只是卸载应用程序并重新安装它或从你正在工作的计算机上运行..这可能是一个迟到的回复,但它会帮助一些..谢谢


0
投票

当我使用Instant Run安装开发构建并从Google Play卸载时,它发生在我身上。由于某些原因,Instant Run中的数据仍在设备中,无法再次安装/卸载应用程序。

唯一的方法来解决它: - 在Android工作室中禁用即时运行 - 从Android工作室安装(它应该只在这里工作) - 卸载应用程序

现在它应该是干净的从Google Play或adb安装。


0
投票

它发生在你从其他PC上构建你的apk并从不同的PC更新它。


0
投票

如果您的清单文件有此行 -

机器人:sharedUserId = “android.uid.system”

造成这个错误!只是评论这条线,你很高兴去!


0
投票

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


97
投票

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

INSTALL_FAILED_UPDATE_INCOMPATIBLE

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

转到Settings> Apps,你会发现你的应用程序的消息:

“没有为这个用户安装”enter image description here

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

enter image description here

Another options:

  • 删除旧应用程序并重新安装。
  • 使用Android Debug Bridge命令: adb uninstall [PACKAGE NAME]

21
投票

有两种方法可行

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

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

adb uninstall your_package_name

10
投票

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

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


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

7
投票

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


6
投票

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

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


4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.