在我的模拟器中,当我尝试以编程方式升级我的apk时。我明白了:
Android App Not Install.
An existing package by the same name with a conflicting signature is already installed
我还处于升级的测试阶段,因此我下载的文件是以前版本的签名apk,我认为应该没有任何问题。
根据an existing package by the same name with a confilcting signature is already installed中的建议,我试图在调试模式和正常模式下运行模拟器......都没有工作。
对我缺少什么的想法?
答案 0 :(得分:192)
我有相同的错误消息,但这些答案没有帮助。在4.3 nexus 7上,我使用的是不是所有者的用户。我已经卸载了旧版本,但我仍然收到相同的消息。
解决方案:我必须以所有者身份登录,然后转到设置 - >应用,然后滑动到全部标签。向下滚动到列表的最后部分,其中列出的旧版本标记为“未安装”。选择它并按右上角的“设置”按钮,最后“卸载所有用户”
答案 1 :(得分:84)
问题是用于签署APK的密钥,默认情况下,如果您直接从IDE运行并打开仿真器,则安装在仿真器中的APK会使用您的调试密钥签名(通常安装在〜中) /.android/debug.keystore),所以如果之前的APK使用的是与您当前使用的密钥不同的其他密钥签名,您将始终获得签名冲突,以便修复它,确保您使用的是同一个键入两个APK的密钥,即使之前的APK使用另一个SDK的调试密钥签名,密钥肯定会有所不同。
此外,如果你不确切地知道在签署apk之前使用了什么密钥,但是你想要安装新版本的应用程序,你可以卸载以前的应用程序并重新安装新版本。
希望这有助于......
问候!
答案 2 :(得分:7)
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个垂直点),并为所有用户选择“卸载”。
答案 3 :(得分:5)
签名和未签名的APK文件之间存在差异。很可能你以前没有签名。您只需要在安装签名版本之前删除未签名的。如何实现这一点取决于确切的版本,但一般情况下,在模拟器上进行设置 - >应用程序,长按您的应用程序,然后删除/删除/卸载它。
答案 4 :(得分:5)
如果您使用的是调试apk,则用于签名的密钥位于
中C:\Users\<user>\.android\debug.keystore
如果使用相同的密钥,安装时不应存在冲突。
答案 5 :(得分:5)
如果您不想打扰密钥库文件,那么只需为所有用户删除该软件包。
将您的设备与Mac / PC连接并运行adb uninstall <package>
为我工作。
答案 6 :(得分:2)
如果您在Android上使用多个用户,请验证该应用是否已在任何位置卸载。
答案 7 :(得分:1)
我遇到了一个问题,即调试和发布版本都不会安装在我用于调试的设备上。尝试安装新版本时会出现相同的消息。唯一的解决方法是卸载当前版本并安装新版本。
看起来Android studio标记了它安装的apk,因此使用软件包管理器的安装会区分安装用于调试的版本和从Google Play或其他外部源下载的版本(这在使用eclipse时从未发生过。)
答案 8 :(得分:0)
可能是应用程序没有卸载成功。如果您的设备是这种情况,您可以尝试这种方法。
首先获取应用程序的包名称,例如&#39; com.xxx.app&#39;,您可以使用Root Explorer从Manifest文件中找到它(RE可以解码文件)。然后你可以使用这个脚本来卸载它:
<DesktopSettings>
<SourceLocation DefaultValue="~remoteAppUrl/AppRead/Home.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
<TabletSettings>
<SourceLocation DefaultValue="~remoteAppUrl/AppRead/Home.html" />
<RequestedHeight>250</RequestedHeight>
</TabletSettings>
<PhoneSettings>
<SourceLocation DefaultValue="~remoteAppUrl/AppRead/Home.html" />
</PhoneSettings>
答案 9 :(得分:0)
当您在AndroidManifiest中更改/添加/删除shareId时,您的应用程序无法更新可能还有其他原因。
“机器人:sharedUserId”
请检查一下。
要防止建议您在应用程序中使用sharedUserId,尽管您现在需要或现在需要。
答案 10 :(得分:0)
相同的包裹错误:
答案 11 :(得分:0)
答案 12 :(得分:0)
如果上述解决方案对您不起作用,则您可能需要执行以下操作。
1)从Appstore安装应用。
2)用具有相同软件包名称更新版本的sign APK更新它。
因此,APK基本上有两种。
1)您在Play商店上传了原始APK。
2)从称为“派生APK”的playstore下载。
在这种情况下,基本上,您正在下载派生的apk并将其更新为原始APK。
为使其正常工作,请在Google Play商店中以内部测试模式上载新的已签名发布的APK,然后下载派生的APK以检查更新方案。
答案 13 :(得分:0)
我尝试了以上所有方法,但没有效果。
我发现,尽管卸载了该应用程序,但新版本的应用程序仍然会出现相同的错误。
这是解决问题的方法: 转到设置->常规->应用程序管理器->选择您的应用程序->单击顶部的三个点->为所有用户卸载
执行此操作后,现在实际上已将其卸载,并且将允许您安装新版本。
希望这会有所帮助。
答案 14 :(得分:0)
答案 15 :(得分:-1)
转到:
Gradle - &gt;安装 - &gt; uninstallAll
这将解决问题。