gpt4 book ai didi

android - 在 Java 中使用 Gradle Play Publisher 的版本名称覆盖

转载 作者:行者123 更新时间:2023-11-30 05:10:37 29 4
gpt4 key购买 nike

Gradle Play 发布器让您可以 override发布到 Play 商店之前的版本名称。

play {
// ...
resolutionStrategy = "auto"
outputProcessor { // this: ApkVariantOutput
versionNameOverride = "$versionNameOverride.$versionCode"
}

是否可以在 Java 代码中使用 versionNameOverride 的值?我们使用 versionName 属性在应用程序的关于页面中显示版本名称。 GPP 更新了 versionNameOverride 值,以便 play 商店列表显示正确的版本号,但应用程序的关于页面不断显示基于 versionName 的不同版本号。

最佳答案

使用 versionNameOverride 可以像这样完成:

outputProcessor { output ->
output.versionNameOverride = output.versionNameOverride + "." + output.versionCode
def versionPropertyFile = file "version.properties"
def versionProperties = new Properties()
versionProperties.setProperty('versionCode', "$output.versionCode")
versionProperties.setProperty('versionName', output.versionNameOverride)
versionPropertyFile.withWriter { versionProperties.store(it, "Generated by the outputProcessor for the play plugin during publishing.") }
}

但是如果你想在你的应用中显示versionName,它会更容易使用

try {
PackageInfo pInfo =
context.getPackageManager().getPackageInfo(getPackageName(), 0);
String version = pInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}

您的应用显示错误值的原因可能是您的应用使用了 BuildConfig。但是那里的 versionCodeversionName 并没有反射(reflect)通过 versionNameOverride 设置的内容,而是反射(reflect)了构建 gradle 中的那些值。

关于android - 在 Java 中使用 Gradle Play Publisher 的版本名称覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53816908/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com