软件包签名与以前安装的版本不匹配


93

这是我的项目:https://github.com/kenpeter/my_hak_news,这是直接拷贝https://github.com/grigio/HAgnostic-News

Git克隆https://github.com/kenpeter/my_hak_news,然后运行react-native run-android

得到这个错误:

* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.hagnosticnews signatures do not match the previously installed version; ignoring!

相关问题:https : //github.com/grigio/HAgnostic-News/issues/1,我遵循各种方法,但无法解决此问题。


14
您的手机上已经安装了该应用程序吗?如果是这样,您将需要卸载它,因为您使用的签名与原始签名不同
-maxoumime

我曾经在手机上安装过,然后长按它将其卸载,然后移至卸载。还是行不通。
kenpeter

4
检查是否已为所有用户卸载该应用程序。转到“设置”->“应用程序”->“灾难新闻”->“选项”(右上角的三个点)->“为所有用户卸载”
maxoumime

那是解决方案!
kenpeter

Answers:


132

您需要卸载它,因为您使用的签名与原始签名不同。如果它不起作用,可能是因为仍为设备上的另一个用户安装了它。要完全卸载,请转到“设置”->“应用程序”->“ HAgnostic新闻”->“选项”(右上角的三个点)->“为所有用户卸载”


2
卸载没有任何作用。即使没有安装该应用程序的设备,也会发生此错误。
IgorGanapolsky '18

3
@maxoimime当您将新版本发布到Play商店时会发生什么。用户在安装新版本之前是否必须卸载应用程序?还是用户可以毫无问题地更新应用程序?
彼得

@maxoimime这个答案有效。您可以考虑删除您的评论。对于大多数用户来说,这是一种误导
AL-zami,

1
这也是我的问题。原来我的应用程序也已安装在Samsung Secure Folder中。
罗马

我遇到此问题是因为出于某些原因,某些以前卸载的应用程序位于“未为此用户安装”的位置。但是我的手机上只有一个用户。这是奇怪
雷米Rousselet

79

我在项目中也遇到了这个问题。

这对我有所帮助,因此满怀希望地会帮助其他人:

adb uninstall "com.domain.yourapp"

解决方案是从这里。


正确答案,+ 1挽救了我的一天:)
赛义德

1
这是正确的答案,因为我已经为所有用户从手机上卸载了该应用程序,但始终收到相同的错误。谢谢
Tarek K. Ajaj

1
Xamarin Forms用户在这里。这就是我的答案。我已经从手机上卸载了该应用程序,但这还不够。
布鲁纳

是的,它也对我有用,它不会显示在应用列表中!
sl45sms

我确定这是正确的答案,我什至在尝试之前就提出了建议,并且按预期进行了工作。谢谢!
周杰伦

17

如果您安装的应用程序版本不是使用相同的密钥库/签名证书构建的,则它将具有不同的签名。默认情况下,每台构建机将具有不同的调试证书,除非您根据google文档指定应如何签名,证书可用于确保将使用相同的调试密钥来构建您的应用程序,而与构建应用程序的计算机无关上。

为了继续进行安装,您必须卸载现有版本,然后重试。



10

大多数情况是在手机安装了Google Play商店中应用程序的版本时发生的。您可以使用与生产版本相同的密钥库/证书来构建代码,也可以仅从电话中卸载并使用调试密钥库/证书来构建代码。


我正面临与问题中提到的相同的问题。您能否让我知道如何使用较早的密钥库/证书来构建代码?我的客户向我提供了密钥库文件,但我不知道如何用我的客户提供的密钥库文件构建我的本地Android响应。
Yousaf Iqbal,

一段时间未使用Android,但是请按照以下说明进行操作:developer.android.com/studio/publish/app-signing#sign_release,您应该转到Build> Generate Signed Bundle / APK,并在“密钥存储路径”下字段中,按“选择现有...”
AS

6

com.android.builder.testing.api.DeviceException:com.android.ddmlib.InstallException:无法完成会话:INSTALL_FAILED_UPDATE_INCOMPATIBLE:程序包[MY REACT NATIVE APP NAME HERE]签名与先前安装的版本不匹配;无视!

尝试使用以下命令在连接的设备上安装我的React Native Android应用时出现此错误:

react-native run-android --variant=release

我的计算机上还运行了一个模拟器。

有一次,我退出模拟器,运行此命令成功。


6

今天,我在三星设备上遇到了同样的问题。在我的具体情况,该应用程序是不是显示在手机上,但它是INSTALLED,所以我不能卸载/删除它。因此,我必须使用终端卸载应用程序: $ adb uninstall "com.domain.yourapp" 我的项目树如下所示(部分视图):

└── com
    └── gluonapplication
        ├── DrawerManager.java
        ├── StartApplication.java
        └── views
            ├── PrimaryPresenter.java
            ├── PrimaryView.java
            ├── SecondaryPresenter.java
            └── SecondaryView.java

所以对我来说,命令是:$ adb uninstall com.gluonapplication 完成后,我通过终端安装了该应用程序:

$ cd /path/to/apk/
$ adb install -t myAwesomeApp.apk  # -t means test install

那对我有用。我希望这个答案是有帮助的。


5

如果您尝试将其安装在仿真器中,但又有另一部电话通过USB连接到计算机,请断开USB电缆的连接或在物理设备中禁用USB调试。(我自己浪费了30分钟。)


1
这是我的问题。我将手机连接到计算机进行充电,并试图在模拟器中运行。
user3486427 '19

3

我遇到了同样的错误。我在虚拟设备上卸载了该应用程序,然后重新运行命令:“ react-native run-android”。



1

当使用不同的凭据上传我的模拟器/手机上的先前版本时,发生了此错误。我要做的是运行:

adb uninstall com.exampleappname

完成后,我便可以重新运行构建并生成APK。


0

您需要卸载它,因为您使用的签名与原始签名不同。如果它不起作用,可能是因为仍为设备上的另一个用户安装了它。要完全卸载,请为所有用户转到设置->应用程序->(特定应用程序)->选项(右上角的三个点)->卸载。

我也遇到了这个问题,那就是在已经正常安装的情况下,已经安装了离子应用程序(相同的程序包名称)从手机中删除了。


0

我在三星设备上遇到了这个问题,卸载该应用程序也得到了同样的信息。问题在于该应用程序也已安装在手机的“安全文件夹”区域中。值得检查这是否是您的方案。


0

转到android studio-> AVD管理器->选择您的AVD并擦除用户数据

无需重新安装整个AVD。


0

您需要使用cmd adb卸载packageName为LG设备完全卸载


他们在4年前用您的建议回答了这个问题
Gonzalo Garcia

0

当我重命名应用程序的包ID时,这发生在React Native项目中,它与我之前已经使用的另一个包ID冲突。我通过执行重新安装来修复它:

  1. 在模拟器的主屏幕上找到该应用程序,然后长按其应用程序图标,然后按App info,然后选择“取消安装”。

  2. 执行react-native run android


0

发生这种情况的原因是该应用程序的先前版本的可用性,该版本未安装在设备上,但其数据存在于设备内存中。因此它无法升级设备上已卸载的应用程序数据

试试这个 :

转到设备设置==>应用程序(所有应用程序)==>搜索您的应用程序或搜索“客户端” ==>在“应用程序信息”屏幕中,按右上角的三点选项==>选择“为所有用户卸载” '==>出现提示,选择' OK '

每当出现此错误时,它对我都有效


0

就我而言,问题是我在设备上使用android studio安装了一个程序包名称为com.example.package的应用程序。我用相同的软件包名称创建了另一个应用程序,并试图将其安装在我的设备上。这就是导致问题的原因。因此,只需检查您的设备上是否已经存在另一个具有相同程序包名称的应用程序。


-1

就我而言,卸载已连接设备中已安装的应用程序可以解决我的问题


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.