Android 应用程序没有安装。已经安装了一个具有冲突签名的同名现有软件包

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

Android App Not Install.

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

enter image description here

我仍然处于这次升级的测试阶段,所以我下载的文件是以前版本的签名 apk,我认为应该没有任何问题。

从建议: 已经安装了具有冲突签名的同名现有包我试图运行的模拟器都在调试模式和正常模式... 都没有工作。

你知道我错过了什么吗?

289474 次浏览

已签名和未签名的 APK 文件之间存在差异。很有可能你之前有一个未签名的。在安装已签名版本之前,只需删除未签名版本即可。具体的实现方式因版本不同而异,但通常情况下,在模拟器上进行设置-> 应用程序,长时间单击应用程序,然后删除/删除/卸载它。

问题在于用于签名 APK 的密钥,默认情况下,如果您直接从 IDE 运行并打开模拟器,则模拟器中安装的 APK 将使用调试密钥(通常安装在 ~/中)进行签名。因此,如果之前的 APK 使用的是不同的密钥而不是你现在使用的那个,你总是会得到签名冲突,为了解决这个问题,确保你使用的是相同的密钥来签署两个 APK,即使之前的 APK 使用的是来自另一个 SDK 的调试密钥,密钥肯定是不同的。

此外,如果你不知道在签署 apk 之前使用了什么密钥,但是你想安装新版本的应用程序,你可以卸载之前的应用程序并重新安装新的应用程序。

希望这个能帮上忙。

问候!

我有相同的错误消息,但这些答案没有帮助。在一个4.3 nexus7上,我使用的用户不是所有者。我卸载了旧版本,但我一直得到相同的消息。

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

我遇到了一个问题,调试和发布版本都不能安装在我用于调试的设备上。在尝试安装新版本时会出现相同的 msg。唯一的解决办法是卸载当前版本并安装新版本。

看起来 Android 工作室标记了它安装的 apk,这样使用包管理器的安装就可以区分安装用于调试的版本和从 Google play 或其他外部来源下载的版本(这在我使用 eclipse 时从未发生过)。

如果您在 android 上使用多个用户,请验证该应用程序是否在所有地方都已卸载。

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

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

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

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

首先获取应用程序的包名,例如‘ com.xxx.app’,您可以使用 Root Explorer 并从 Manifest 文件中找到它(RE 可以解码该文件)。然后你可以使用这个脚本来卸载它:

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

当您在 AndroidManifiest 中更改/添加/移除 ShareId 时,您的应用程序不会更新可能还有另一个原因。

“ android: sharedUserId”

请检查一下。

为了防止将建议在您的应用程序中使用 sharedUserId,尽管在您当前的需求中您需要或现在。

如果您不想使用密钥存储库文件,那么只需为所有用户删除该包即可。

将您的设备与 Mac/PC 连接并运行 adb uninstall <package>

对我有用。

档号: https://android.stackexchange.com/questions/92025/how-to-completely-uninstall-an-app-on-android-lollipop

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

enter image description here

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

同样的包错误:

  1. 在你的应用程序中创建一个不同名称的新包。
  2. 将旧包中的所有文件复制并粘贴到新包中。
  3. 保存代码。
  4. 删除旧包,清理和重建项目。

enter image description here我必须作为所有者登录,进入设置-> 应用程序,然后刷新到所有标签。向下滚动到列表的最末尾,其中列出了带有“未安装”标记的旧版本。选择它,然后按右上角的“设置”按钮,最后“为所有用户卸载”

如果上面的解决方案对你不起作用,那么你可能需要做以下的事情。

1)从 Appstore 安装应用程序。
2)使用同一软件包名称的签名 APK 更新版本。

所以基本上有两种,如果 APK 的。

1)你上传到游戏商店称为原始 APK。
2)从 Playstore (衍生 APK)下载。

在这种情况下,您基本上是下载派生的 APK 并用原始的 APK 更新它。

为了让它工作良好,在 Google Play Store 的内部测试模式下上传新的已签名发布的 APK,并下载派生的 APK 来检查更新场景。

enter image description here

我尝试了以上所有的方法,但都没有效果。

我发现,尽管卸载了应用程序的一个新版本的应用程序仍然会出现同样的错误。

这就是解决问题的方法: 进入设置-> 常规-> 应用程序管理器-> 选择你的应用程序-> 点击顶部的三个点-> 卸载所有用户

一旦您这样做了,现在它实际上已经卸载,现在将允许您的新版本安装。

希望这个能帮上忙。

我只是选择卸载所有在 Gradle Bar。它为我工作。

enter image description here