Android Gradle'versionCode'无法从环境变量中读取

Dri*_*ies 3 automation android gradle

我有一个Android,我通过CI服务器部署到Google Play alpha轨道.对于Android,versionCode我使用通过环境变量注入Gradle脚本的CI内部版本号.

以前这很好用; 但目前Google Play不接受任何版本.当我为Gradle 手动触发alpha上传版本(使用gradle-play-publisher插件)时,我最终得到以下错误:

APK has an invalid version code.
Run Code Online (Sandbox Code Playgroud)

因此,当aapt dump badging apk-path在生成的APK中查找(使用)时,我看到版本代码(versionCode='')的空值.

构建脚本中的相关代码:

def appVersionCode = System.getenv("BUILD_NUMBER") as Integer ?: 0
defaultConfig {
  ...
  versionCode appVersionCode
  ...
}
Run Code Online (Sandbox Code Playgroud)

似乎变量没有被正确读取; 但它System.getenv("KEY_PASS")正确读取用于签名.

变量也设置为:

? echo $BUILD_NUMBER
1234
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么这个特定变量似乎不再被读取?

Gradle版本:3.5使用Android Gradle插件2.3.1.

Lui*_*rra 8

尝试将您的代码更改为:

def appVersionCode = Integer.valueOf(System.env.BUILD_NUMBER ?: 0)
defaultConfig {
  ...
  versionCode appVersionCode
  ...
}
Run Code Online (Sandbox Code Playgroud)