安装新版本时出现“Android 应用程序未安装。该软件包与同名的现有软件包冲突”

问题描述 投票:0回答:2

我正在尝试通过手机上的文件管理器安装我的应用程序之一的新签名发行版本,但收到此错误消息“应用程序未安装,该包与同名的现有包冲突”。我已经从 google play Store 安装了以前的版本,两个 apk 都是从同一个密钥库签名的。

上一版本的应用程序构建配置

compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
    applicationId "com.xxx.xxx"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 19
    versionName "1.1.9"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

新版本App Build Config

compileSdkVersion 27
defaultConfig {
    applicationId "com.xxx.xxx"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 20
    versionName "1.2.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

我知道卸载以前的版本后,我将能够安装该应用程序的新版本,但是我的应用程序的用户是否能够在不从 Play 商店卸载以前版本的情况下更新该应用程序?如果不是我怎样才能避免这种情况?


更新

Play 商店中有两份 apk 副本 1. 原始副本(您上传的) 2.衍生副本(Google play 通过修改您的 apk 创建的,并且此 apk 分发给所有人)。

您可以从这里下载这两个应用程序

Google Play 控制台 -> Artifact Library -> 点击下载按钮 -> 现在 Google Play 会询问您要下载哪个 apk。

因此,如果您尝试使用从 Android Studio 创建的发布签名应用程序更新从 Play 商店下载的应用程序,您可能会收到此错误。但是如果您将发布签名的 apk 上传到 Play 商店,您的用户将能够更新应用程序没有任何错误。

如果您想测试事物数据库迁移,您可以使用原始apk。

android gradle google-play
2个回答
4
投票

您检查过是否已完全删除开发版本吗?我以前也遇到过这样的事情,这就是原因。如果没记错的话,这需要完全卸载应用程序,重新启动设备,然后从商店安装并安装生产版本。甚至可能在处理一些建议的主要 UI 更改时,我以不同的名称但相同的 applicationId 进行了测试构建(我复制了项目,但只重命名了一些内容)。


0
投票

我也遇到了同样的问题。我更改了应用程序中的一些 api,并根据 api 响应进行了一些更改,但总体应用程序是相同的,并且两个 apk 上具有相同的签名密钥和应用程序名称,但无法更新。如果用户有卸载并重新安装更新然后他们会丢失下载的数据,这使用户体验很差。但是 找不到我的代码的哪一部分导致包冲突的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.