APP 未安装 已安装具有相同名称且签名冲突的现有包

APP not installed an existing package by the same name with a conflicting signature is already installed

我是 android 开发的新手 我开发了一个应用程序并从不在 playstore 中的 bin 文件夹分发了一个副本。用户第二次尝试使用不同版本安装应用程序,它给出 "APP not installed an existing package by the same name with a conflicting signature is already installed" 像这样,但相同版本不会像这样。

我想在不使用 Play 商店的情况下安装应用程序而不卸载(意味着用户不想卸载)上一个应用程序,还有一个问题是此签名何时会生成。

提前致谢。

Harsha Vardhan 是对的,您应该先清理项目,然后使用与安装的 apk 相同的签名。

看看会发生什么:很可能您已经编译了一个 DEBUG 版本的应用程序并以您自己的方式分发了它。那时你的 IDE 使用了一个调试证书,它是在你每次安装 IDE/SDK 时自动创建的。现在,一段时间过去了,你切换了你的工作 PC/notebook 或者你重新安装了 IDE/SDK 或者你切换了让我们说从 Eclipse 到 AndroidStudio 或者改变了你的 OS 从 Win7 到 Win8 或 Ubuntu,无论你做了什么,但结果是现在生成并使用了全新的调试证书。并且很可能您已经丢失了之前的调试证书 4ever(取决于这是如何发生的)。
证书本身代表一个唯一的指纹,每个调试或发布证书都有自己唯一的指纹。该指纹就是Android 所说的签名。每个 apk 都是使用证书签名的,并且有自己的签名,这是强制性的。
因此,由于您使用的是不同的调试密钥库证书,因此您无法执行您想要的操作。正确的方案是创建一个发布证书(密钥库)并使用它为您的应用程序签名,然后以您想要的任何方式分发应用程序。这样你还应该保存你的发布证书并在以后重新使用它来签署任何即将到来的更新。
至于现在你应该恢复你签署你的 apk 的证书或者你的用户现在唯一的方法是卸载然后安装。

你说的是对的,但这里的问题是我已经更改了 sdk,因为发生了这个问题。我认为解决方案是需要从同一个 sdk 生成 apk 文件。

我不确定为什么会这样。

但我也遇到过一次。

我已将 程序包名称 com.aashakil.myapp 更改为 com.myapp 并且已修复。

如果你改变你的,它可能会起作用。