我刚刚升级了我的应用程序的compileSdkVersion
到28
(Pie)。
我收到一个编译警告:
警告:[deprecation] PackageInfo中的versionCode已被弃用
警告来自于这段代码:
final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
int versionCode = info.versionCode;
字符串
我查看了文档,但它没有说明如何解决这个问题,或者应该使用什么来代替弃用的字段。
7条答案
按热度按时间hzbexzde1#
它说明了在Java文档上要做什么(我建议不要过多使用Kotlin文档;它维护得不好):
versionCode
此字段在API级别28中不推荐使用。请改用getLongVersionCode(),它同时包含此属性和附加的versionCodeMajor属性。此包的版本号,由标记的versionCode属性指定。
不过,这是一个API 28方法,所以考虑使用PackageInfoCompat。它有一个静态方法:
字符串
uxh89sit2#
我推荐的解决方案:
将其包含在您的主构建中。gradle:
字符串
然后使用这个代码:
型
如果您在添加appcompat库时遇到问题,请使用此替代解决方案:
型
i2byvkas3#
对于其他使用Xamarin的人,我的回答是:
字符串
lrl1mhuk4#
这里的解决方案在**
kotlin
**:字符串
new9mtju5#
在Kotlin中获取PackageInfo中的versionCode的简单代码
字符串
tyu7yeag6#
从API
33
开始,来自库:字符串
从你自己的应用程序,这仍然是一个有效的答案:https://stackoverflow.com/a/21119027/2115403
elcex8rz7#
你也可以使用这个扩展变量:
字符串