Android:无法用新版本覆盖现有应用

时间:2017-02-24 19:01:46

标签: android gradle android-manifest android-update-app

我正在开发现有应用的新版本。这是一个彻底的重新设计,因此我为此更新创建了一个单独的项目。现在,我需要在从v2(旧版本)升级到v3(新版本)时测试应用程序的行为。这两个项目具有相同的applicationId,模块名称,并由相同的密钥签名。但是,当我安装v2,然后安装v3时,旧应用程序不会被覆盖;我最终安装了两个。我错过了什么导致Android将这些应用视为不同的?

1 个答案:

答案 0 :(得分:2)

如果具有相同的应用程序ID,则无法在设备上同时安装两个APK。模块名称并不重要,不同的签名密钥只会强制完全卸载/重新安装而不是更新。

仔细检查您的应用ID是否存在轻微错别字。

还要检查build.gradle中是否定义了applicationIdSuffix。将.debug之类的内容附加到调试版本中是相当常见的,这样您就可以在设备上安装调试和发布版本。如果是这种情况,请确保使用发布版本尝试升级。

您还可以在Toast中记录(或显示应用程序ID),以验证它们是否不同以及您的期望。只需致电BuildConfig.APPLICATION_ID即可获取当前的应用程序ID。