135

In my emulator, when I try to do an upgrade of my apk programmatically. I get:

Android App Not Install.

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

enter image description here

I'm still in the testing phase of this upgrade, so the file I download is a signed apk of a previous version, which I think should work without any issues.

From the suggestion in: an existing package by the same name with a confilcting signature is already installed I tried to run the emulator both in debug mode and in normal mode... neither worked.

Any thoughts on what I'm missing?

4

15 回答 15

198

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

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

于 2013-11-19T23:04:19.787 回答
106

问题是用于签署 APK 的密钥,默认情况下,如果您直接从 IDE 运行并打开模拟器,则安装在模拟器中的 APK 会使用您的调试密钥(通常安装在 ~/.android /debug.keystore),因此如果之前的 APK 使用与您当前使用的密钥不同的密钥进行签名,您将始终遇到签名冲突,为了修复它,请确保您使用相同的密钥进行签名两个 APK,即使之前的 APK 使用来自另一个 SDK 的调试密钥签名,密钥肯定会不同。

此外,如果您不确切知道之前用于签署 apk 的密钥,但您想安装新版本的应用程序,您可以卸载以前的应用程序并重新安装新的应用程序。

希望这可以帮助...

问候!

于 2013-11-13T17:18:08.757 回答
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.

enter image description here

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

于 2017-11-07T11:41:07.103 回答
6

如果您不想打扰密钥库文件,那么只需为所有用户完全删除该软件包。

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

为我工作。

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

于 2017-03-07T07:37:46.707 回答
6

如果您使用的是调试 apk,则用于签名的密钥在

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

如果您使用相同的密钥,安装时应该不会发生冲突。

于 2016-02-04T16:34:44.467 回答
5

签名和未签名的 APK 文件之间存在差异。很可能你以前在那里有一个未签名的。您只需要在安装签名版本之前删除未签名的。如何实现这一点因具体版本而异,但一般来说,在模拟器上进入设置-> 应用程序,长按您的应用程序,然后删除/删除/卸载它。

于 2013-11-13T17:04:24.917 回答
5

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

1) 从 Appstore 安装应用程序。
2) 使用具有相同包名更新版本的签名 APK 对其进行更新。

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

1)您在被称为原始 APK 的 Playstore 上上传。
2)从称为派生APK的playstore下载。

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

为了让它正常工作,在 Google Play 商店以内部测试模式上传新签名的发布 APK 并下载派生的 APK 以检查更新场景。

在此处输入图像描述

于 2019-04-07T15:14:46.320 回答
2

如果您在 android 上使用多个用户,请验证该应用是否已在各处卸载。

于 2015-11-24T12:50:19.150 回答
1

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

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

于 2015-05-14T11:38:12.837 回答
1

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

于 2018-09-04T04:21:41.273 回答
1

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

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

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove
于 2016-12-29T10:32:02.463 回答
1

当您在 AndroidManifyt 中更改/添加/删除 shareId 时,您的应用程序不会更新可能还有其他原因。

“机器人:sharedUserId”

请也检查一下。

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

于 2017-02-27T11:48:04.600 回答
1

相同的包错误:

  1. 在您的应用程序中创建一个具有不同名称的新包。
  2. 将旧包中的所有文件复制并粘贴到新包中。
  3. 保存代码。
  4. 删除旧的包并清理并重建项目。
于 2018-04-27T05:46:06.820 回答
1

我尝试了以上所有方法,但没有奏效。

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

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

执行此操作后,它实际上已被卸载,现在将允许安装您的新版本。

希望这可以帮助。

于 2019-08-28T10:32:33.473 回答
0

我只是在 Gradle Bar 中选择了 uninstallAll。它对我有用。

在此处输入图像描述

于 2021-06-07T03:45:37.427 回答