我尝试将versionName定义为要在我的gradle配置文件app / build.gradle中使用的ext变量。
ext {
versionCode = 19
versionName = "1.2.3"
...
}
...
android {
...
defaultConfig {
...
versionCode versionCode
versionName versionName
}
...
}
...
task updateReleaseMetadata(type:Exec) {
commandLine 'sh'
args "MyShellScript.sh", versionName
}
...
看起来工作正常。但是我的android代码无法检索版本名称,如下所示
PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
return pi.versionName; // return null
我想我没有以正确的方式使用gradle。 任何帮助都会得到满足。
答案 0 :(得分:10)
这是在Gradle中设置全局变量的方法。使用此代替ext {}
project.ext.set("versionCode", 19)
project.ext.set("versionName", "1.2.3")
然后在你的defaultConfig
中versionCode project.versionCode
versionName project.versionName