我正在发布模式下构建一个 Android 应用程序。我第一次在设备上安装它时,它工作正常。但是,如果我从相同的源重建它,用相同的密钥对其进行签名,然后重新安装,它就会失败。我在日志中收到以下错误:
W/InstallAppProgress(30456): Replacing package:com.mycompany.myapp
W/ActivityManager(26370): No content provider found for permission revoke: file:///storage/emulated/0/Download/MyApp-17.apk
W/PackageManager(26370): Can't install update of com.mycompany.myapp update version 0 is older than installed version 3
应用程序的版本代码设置为 3,我两次都构建它。它从哪里得到更新是“版本 0”的想法?
更新:我的清单文件中有这个:android:versionCode="@integer/app_version_code"
. 我已经<integer name="app_version_code">3</integer>
在res/values/strings.xml
.
我很确定这曾经有效,但现在似乎无效。如果我用硬编码的“3”替换@integer 引用,它就可以工作。不应该支持@integer吗?