Android在安装应用程序时显示签名冲突错误

Android在安装应用程序时显示签名冲突错误,android,installation,signature,Android,Installation,Signature,我想为我的应用程序提供更新版本 它是从我的网站下载的,不是从谷歌播放服务下载的。 当我下载更新版本时,它并没有替换旧版本,而是显示错误“一个同名且签名冲突的现有包” 是否有任何解决方案可以在不手动从设备上卸载旧版本的情况下更换应用程序。是的,错误消息已经描述了您的问题。您的问题是您的应用程序没有使用与上一版本相同的签名进行签名 因此,为了防止出现此错误消息,您必须使用与上一版本相同的签名对应用程序进行签名 有关应用程序签名的更多详细信息,请参见。每个android应用程序文件–apk有两个主要功

我想为我的应用程序提供更新版本

它是从我的网站下载的,不是从谷歌播放服务下载的。 当我下载更新版本时,它并没有替换旧版本,而是显示错误“一个同名且签名冲突的现有包”


是否有任何解决方案可以在不手动从设备上卸载旧版本的情况下更换应用程序。

是的,错误消息已经描述了您的问题。您的问题是您的应用程序没有使用与上一版本相同的签名进行签名

因此,为了防止出现此错误消息,您必须使用与上一版本相同的签名对应用程序进行签名


有关应用程序签名的更多详细信息,请参见。

每个android应用程序文件–apk有两个主要功能:

  • 包名称–(com.example.application等应用程序的唯一id)
  • 签名
  • 关于第二个的更多信息。每个apk文件都应该使用开发者密钥库进行签名。如果这是调试版本,则可能是调试密钥库。 在这个密钥库中有一些关于开发者的信息和其他信息

    当您安装应用程序时,android系统首先检查软件包名称–是否已安装此应用程序。若有,系统会检查签名。已安装的应用程序和要安装的应用程序的签名必须相同。否则你会得到错误,你在你的问题中描述

    因此,答案是:不,如果已安装和待安装应用程序的签名不同,则无法安装具有相同软件包名称的其他应用程序。
    如果需要新版本,则必须卸载以前的版本并安装新版本。

    如果该版本是由您或开发人员开发的

    一旦在清单文件中检查整个代码和包名是否相同

    如果不是这样,应用程序就不是来自您或您的已知开发人员。
    您需要卸载以前的版本并安装新版本

    您得到的错误是应用程序未签名,这意味着当我们使用未签名的应用程序时,它无法替换已签名应用程序的部分。首先,将你的应用程序设为已签名

    更多信息请访问


    如何在

    将应用程序设为自签名以保护应用程序的标识每个版本(更新)都需要与早期版本相同的签名密钥(SHA1)。 默认情况下,Eclipse使用调试键登录所有包


    使用与第一次安装应用程序相同的方法,一切都应该正常工作。

    如果有新版本可用,您是否编写了更新现有apk的代码?是的,我同意。确保用于运行应用程序的密钥库与升级版本中的密钥库相同。在这两个版本中,我只使用了默认密钥库,但用于开发的sysytem不同,并且我没有签署旧版本。我不明白默认密钥库的意思,但无论如何:当您的上一个应用程序没有签署时,由于系统无法确保新更新由同一实体开发,因此无法进行更新。这就是为什么您应该始终对应用程序进行签名的原因。是否有任何方法可以在安装最新版本时使用软件包名称自动删除旧版本。不,没有任何方法。如果你找到一种方法来做你想做的事,你可能已经发现了Android的一个严重漏洞。我不同意这一点!应用程序必须使用相同的密钥签名,但是签名不需要相等。签名和密钥之间有什么区别?应用程序的签名是使用您的私钥签名的应用程序包的哈希和。是否有任何方法可以找到旧版本签名并在更新版本中使用它。如果您找到签名旧apk的.keystore,那你就可以辞职了。有关更多信息,请参阅: