当试图将我的应用程序部署到Android设备时,我得到以下错误:

Deployment failed because of an internal error: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

我知道这个问题,但应用程序没有安装。它已被Visual Studio在尝试部署期间删除/部分删除。

在过去,我通过从谷歌播放商店下载应用程序,然后从设置>应用程序管理器中删除它来解决这个问题。然而,现在我得到的错误“不兼容的更新”,当它试图安装它。

我尝试使用钛备份和其他一些东西来删除它,但运气不好。

编辑1

我意识到(来自@Motz),我没有提到明显的解决方案是行不通的。也就是说,该应用程序不会出现在设置->应用程序


我已经见过好几次了。通常,这是因为我的手机上有一个签名的发布版本,然后试图在上面部署调试版本。在没有完全卸载的情况下,它会卡在无效状态。

对我来说,有效的解决方案是打开命令提示符并键入:

adb uninstall my.package.id

这通常完成卸载,以便我继续开发。


不需要做adb卸载,只需去您的设置->应用程序,然后从那里做卸载。您将看到您的应用程序变灰。

问题通常与发布版本和调试版本有关,比如这里提到的@Kiliman。


您必须确保应用程序已卸载。

在你的手机中,尝试转到设置/应用程序,并显示所有已安装的应用程序的列表,然后确保该应用程序已为所有用户卸载(在我的情况下,我已经卸载了该应用程序,但仍为其他人卸载)。


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

INSTALL_FAILED_UPDATE_INCOMPATIBLE

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

转到设置>应用程序,你会发现你的应用程序的信息:

“未为此用户安装”

,我们必须手动卸载所有用户的选项:

“为所有用户卸载”


我不小心连接了两个设备。

在移除一个设备后,install_failed_update_compatible错误已经消失。


在我的情况下,当我切换到android的最低目标版本时,我得到了这个,当我换回原来的一个(当我在第一次创建项目)。 因此,卸载是有效的。但是当我把我的安卓版本换成最新的,我又得到了它。为了解决这个问题,我去了android项目的属性,在android manifest部分,我添加了一个包名,例如com.dotnetdreamer.net。如果您已经有了包名,那么您可以简单地将其重命名为其他名称。


我经常在Android 5.0+版本的设备上遇到这个问题。因为它在同一设备上有多用户配置文件帐户。每个应用程序将作为所有用户的单独实例安装。确保为所有用户卸载如下截图。


一种简单的方法是重命名包名并再次运行


删除手机中的所有应用程序文件

要自动删除手机上的应用程序,您可以使用以下步骤。它可以非常有用的删除你的应用程序和应用程序数据在一个快速和干净的方式。

用这段代码创建一个文本文件,并保存为Uninstall.sh。到终端中这个脚本的文件夹(你放置它的地方),执行:sh Uninstall.sh YOURNAMESPACE

现在你的命名空间文件夹(包括保存的应用程序文件和数据库)将被删除。

  echo "Going to platform tools $HOME/Library/Android/sdk/platform-tools"
  cd $HOME/Library/Android/sdk/platform-tools
  echo "uninstalling app with packagae name $1"
  ./adb uninstall $1

删除pc上的所有应用程序文件

用这段代码创建一个文本文件,并将其保存为DeleteBinObj.sh。

find . -iname "bin" -o -iname "obj" | xargs rm -rf

到你的项目文件夹,你把这个脚本,并在终端:sh DeleteBinObj.sh


你可以添加一个参数来运行,参见:

Run --> Parameters

在字段参数中添加-cleaninstall

现在只要运行,他们总是会在安装前做深层清洁。


如果这能帮到别人, 我将我的应用程序部署到谷歌播放,当我卸载它并试图在我的设备(新版本)上运行调试时,我得到了这个失败的更新消息。

我无法在我的设备上看到应用程序(它已经卸载了),所以我:

安装第一个版本再次从谷歌播放

Opened Settings/App/App名称

清除数据

清空缓存

卸载应用程序

现在您可以再次将调试版本部署到设备上:)


如果您使用的是三星设备,并且偶然将应用程序标记为三星Knox,那么您需要从My Knox应用程序卸载它。

只是从一般应用程序卸载不会从诺克斯应用程序卸载它。它必须明确地做!


卸载apk(应用程序,你正在工作)从您的android设备,然后再次运行。


通过命令行使用Ionic和Cordova…

ionic cordova run android --prod

我遇到了这个问题,发现我从以前的测试安装中删除了发布版本,但还有一个旧的调试版本挂在apps抽屉里,我错过了。我把我的设备从电脑上拔下来,打开应用程序抽屉,使用“搜索应用程序..”找到应用程序的所有实例,然后卸载它们。然后我把设备重新插到电脑和中提琴上,它工作了!

谢谢大家的帮助!


Ok卸载app,但我们承认数据不一定会丢失? 这可以解决,升级versionCode和versionName,并尝试应用程序在“发布”模式。

例如,当我们想要尝试迁移数据库时,这很重要。 我们可以将我们在play store上的应用程序与尚未发布的实际应用程序进行比较。


对我来说。我安装了发布版本的应用程序。从我的设备上卸载应用程序后。事情进展顺利。


我希望这将在未来帮助到某些人,但只需进入config.xml,在小部件标记中,将默认id(io.ionic.starter)更改为您自己的id。看看这个android包命名。


签名不匹配您以前的当前APP和新的APK

所以请卸载之前的应用程序和gradlew清洁,并再次安装apk

react-native运行android

react-native run-ios


从连接的设备(模拟器或手机)卸载应用程序 得到终端到项目文件夹CD android 3下次运行。/gradlew清洁它清洁你的构建 4 cd . .然后在下面运行 5 . react-native run-android


首先,你必须在模拟器或设备中卸载你的应用程序,之后你可以CD ./android -> ./gradlew清洁,然后重新构建项目(运行android或ios) ->解决


从模拟或智能手机卸载应用程序,并尝试再次运行


从所有用户卸载应用程序可能是正确的解决方案,但也要确保检查其他设备的安全文件夹或类似的东西。

我花了2个小时试图找出问题的原因(我的个人平板电脑上只有一个用户)

我无法安装应用程序的原因是我错误地通过从“内部测试”到当前用户和我的安全文件夹的直接链接安装了应用程序。

当您激活安全文件夹时,平板电脑名称会出现两次:其中一个是安全文件夹。(不小心同时安装了)

例子