我正在开发现有应用的新版本。这是一个彻底的重新设计,因此我为此更新创建了一个单独的项目。现在,我需要在从v2(旧版本)升级到v3(新版本)时测试应用程序的行为。这两个项目具有相同的applicationId,模块名称,并由相同的密钥签名。但是,当我安装v2,然后安装v3时,旧应用程序不会被覆盖;我最终安装了两个。我错过了什么导致Android将这些应用视为不同的?
答案 0 :(得分:2)
如果具有相同的应用程序ID,则无法在设备上同时安装两个APK。模块名称并不重要,不同的签名密钥只会强制完全卸载/重新安装而不是更新。
仔细检查您的应用ID是否存在轻微错别字。
还要检查build.gradle中是否定义了applicationIdSuffix
。将.debug
之类的内容附加到调试版本中是相当常见的,这样您就可以在设备上安装调试和发布版本。如果是这种情况,请确保使用发布版本尝试升级。
您还可以在Toast中记录(或显示应用程序ID),以验证它们是否不同以及您的期望。只需致电BuildConfig.APPLICATION_ID
即可获取当前的应用程序ID。