未安装Android应用。已经安装了具有相同名称且签名冲突的现有软件包


131

在我的模拟器中,当我尝试以编程方式对我的apk进行升级时。我得到:

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

在此处输入图片说明

我仍处于此升级的测试阶段,因此我下载的文件是先前版本的经过签名的apk,我认为它应该可以正常工作。

根据以下建议:已经安装了具有冲突签名的同名现有软件包,我尝试在调试模式和正常模式下都运行模拟器...均无效

对我想念的东西有什么想法吗?


1
在安装之前使用相同的签名对apk进行签名
Praveen Sharma

这个问题产生,由于签名或密钥存储文件不匹配找到的链接的解决方案:readyandroid.wordpress.com/...
就绪的Android

Answers:


97

问题是用于签名APK的密钥,默认情况下,如果直接从IDE运行并打开Emulator,则安装在Emulator中的APK会用您的debug-key签名(通常安装在〜/ .android中) /debug.keystore),因此如果以前的APK是使用不同于您当前使用的密钥的其他密钥签名的,则您始终会遇到签名冲突,为了解决该问题,请确保您使用的密钥完全相同。这两个APK,即使先前的APK是用另一个SDK的调试键签名的,键也肯定会不同。

另外,如果您不知道在对apk进行签名之前曾使用过什么密钥,但又想安装新版本的应用程序,则只需卸载先前的应用程序并重新安装新的应用程序即可。

希望这可以帮助...

问候!


我将执行一个非开发人员签名的APK,并在模拟器中进行手动下载/安装。然后,仿真器应下载其他非开发者签名的apk并尝试进行升级。如果可行,我会接受您的回答。Thx
James Oravec

反正@MartinCazares是否可以获取apk密钥?这样我就不会丢失我的应用数据?
heisenberg 2015年

好吧,如果您安装了该应用程序,则应该拥有密钥,否则您将如何对apk进行签名?如果先前的apk不是由您创建的,那么您需要向该apk的开发人员询问密钥,除了无法获取用于签署apk的密钥之外
马丁·卡扎雷斯

非常感谢!你救了我和我的团队!哈哈
perozzo

1
我在playstore的LIVE中有一个应用程序,现在我一直将该应用程序安装在测试设备中,现在为了更新较新版本的应用程序,我正在应用程序build.gradle文件中更新“ versionno”和“ versionname”。现在,我已经制作了一个带有签名密钥的发布版本,现在我正试图通过错误:::来安装该版本:::已经安装了一个具有相同名称且签名冲突的现有pacakage。而且也没有安装。请帮忙。
Tarit Ray

195

我有同样的错误信息,但是这些答案没有帮助。在4.3连结7上,我使用的用户不是所有者。我已经卸载了旧版本,但仍然收到相同的消息。

解决方案:我必须以所有者身份登录,然后转到“设置”->“应用程序”,然后滑动到“所有”选项卡。向下滚动到列表的末尾,其中列出了带有“未安装”标记的旧版本。选择它,然后按右上角的“设置”按钮,最后“为所有用户卸载”


2
我必须从“已下载”列表滑到“所有”列表,才能在“应用程序”列表中找到它。
ShawnFeatherly 2014年

1
如您所述,请确保一直向下滚动至底部-“未安装”的应用程序未按字母顺序列出。
2014年

3
谢谢!!!将我的测试Nexus 7借给朋友后,这也是我的问题。以为我的密钥已损坏...我删除了该用户只是为了减少将来的混乱。
mm2001

1
节省了我的时间。荣誉
Piyush Patel

2
谢谢。我必须登录所有用户并由1卸载
Ricardo

8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

在此处输入图片说明

转到设置>应用,找到并打开应用信息。然后,打开溢出菜单(3个垂直点),然后为所有用户选择“卸载”。


这对我有所帮助-谢谢。由于某种原因,即使通过主屏幕将其卸载后,我的应用仍显示两个版本。
Joro Tenev'3

感谢Joro Tenev投票给我
Keshav Gera,


5

已签名和未签名的APK文件之间有区别。您很可能以前曾在那里未签名。在安装签名版本之前,只需删除未签名的版本。具体实现的方式因具体版本而异,但通常,在模拟器上转到“设置”->“应用程序”,长按您的应用程序,然后删除/删除/卸载它。


我将制作一个未签名的apk,然后下载未签名的apk,看看是否可以解决它,如果可以,则可以使用硬件测试已签名的apk。如果是这样,我会接受答案。
James Oravec

我正在尝试从程序内部进行升级,因此无法进行手动卸载/安装。
James Oravec

当我执行未签名的应用程序安装时,我得到的只是app not installed。我检查了模拟器设置,并Allow installation of apps from unknown sources进行了检查。因此,这似乎不是解决方案。
James Oravec

给您有关建议的投票权。我认为这有助于我们获得最终解决方案。谢谢!
James Oravec

5

如果使用的是调试apk,则用于对其进行签名的密钥在

C:\Users\<user>\.android\debug.keystore

如果您使用相同的密钥,则安装时不应有冲突。


非常感谢圣地亚哥,最后一天,我将计算机硬盘驱动器从机械驱动器更改为固态驱动器,因此我需要升级Windows,遇到同样的问题,然后将debug.keystore文件从以前的Windows文件夹复制到了新的文件夹中Windows文件夹中的问题得到解决:)
Arslan Sohail

感谢您的回答,因为它确实解决了我的问题,所以我正在和一个朋友一起编程,并且由于我们共享调试键,所以我们经常遇到这个问题,一切都很好。
GustavoMagalhães17年

5

如果上述解决方案对您不起作用,则您可能需要执行以下操作。

1)从Appstore安装应用。
2)用具有相同软件包名称更新版本的sign APK更新它。

因此,如果有APK,基本上有两种。

1)您在称为原始APK的playstore中上传了视频。
2)从称为“派生APK”的playstore下载。

在这种情况下,基本上,您正在下载派生的apk并将其更新为原始APK。

为了使其正常工作,请在Google Play商店的内部测试模式下上传新的已签名发布的APK,然后下载派生的APK以检查更新方案。

在此处输入图片说明



1

我有一个问题,即调试和发布版本都不会安装在我用于调试的设备上。尝试安装新版本时,将出现相同的消息。唯一的解决方法是卸载当前版本并安装新版本。

看起来Android Studio标记了它安装的apk,以便使用包管理器进行安装可以区分调试安装的版本和Google Play或其他外部来源下载的版本(使用eclipse时从未发生过)。


1

可能是应用程序未成功卸载。如果您的设备属于这种情况,则可以尝试此方法。

首先获取应用程序的软件包名称,例如“ com.xxx.app”,您可以使用Root Explorer并从清单文件中找到它(RE可以解码该文件)。然后您可以使用以下脚本将其卸载:

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove

1

相同的包装错误:

  1. 在您的应用中使用不同的名称创建一个新的Package。
  2. 将旧包中的所有文件复制并粘贴到新包中。
  3. 保存代码。
  4. 删除旧的Package And Clean并重建项目。

1.非常2.简短3.可以4.使用5.解释。
Yunnosch

1

在此处输入图片说明我必须以所有者身份登录并转到“设置”->“应用程序”,然后滑动到“所有”选项卡。向下滚动到列表的末尾,其中列出了带有“未安装”标记的旧版本。选择它,然后按右上角的“设置”按钮,最后“为所有用户卸载”


这对我有用,但是...现在从我的网站下载时,该应用程序无法下载(至少到“下载”文件夹中)。没有错误报告。只是没有发生。将手机插入计算机后,我可以将APK复制到手机上并进行安装,而不会报告任何错误。
罗恩

0

当您在AndroidManifiedt中更改/添加/删除shareId时,您的应用程序将不会更新的另一个原因可能是。

“ android:sharedUserId”

请也检查一下。

为防止这种情况,建议尽管您当前需要或现在仍在您的应用程序中使用sharedUserId。


0

我尝试了以上所有方法,但没有成功。

我发现尽管卸载了该应用程序,但该应用程序的新版本仍然会给出相同的错误。

解决问题的方法是:转到“设置”->“常规”->“应用程序管理器”->选择您的应用程序->单击顶部的三个点->为所有用户卸载

完成此操作后,现在实际上已将其卸载,并且将允许您安装新版本。

希望这可以帮助。

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.