Output.json 将应用版本代码显示为版本名称

Output.json displays app version code as version name

当 运行 assembleProdRelease 生成 APK 和输出文件时,我遇到了一些无法解释的奇怪现象(我的应用具有 prod 风格和 release 构建类型)。

output.json文件实际上显示版本代码作为版本名称,见下文

{
  "version": 1,
  "artifactType": {
    "type": "APK",
    "kind": "Directory"
  },
  "applicationId": "com.example.myapp",
  "variantName": "prodDebug",
  "elements": [
    {
      "type": "SINGLE",
      "filters": [],
      "properties": [],
      "versionCode": 2,
      "versionName": "2",
      "enabled": true,
      "outputFile": "app-prod-debug.apk"
    }
  ]
}

我的构建 gradle(在 Kotlin kts 中)非常标准:

defaultConfig {
        applicationId = "com.example.myapp"
        minSdkVersion(24)
        targetSdkVersion(29)
        versionName = "1.0.0"
        versionCode = 2
    }

我希望 "versionName": "1.0.0" 而不是 output.json 文件中显示的“2”。

我的 CI 设置依赖于输出文件内容从那里获取应用程序版本,所以这基本上导致我生成了错误的文件名。

我想知道是否有人遇到过类似的问题,您是如何解决的?

谢谢

这是 android gradle 插件 4.0.0 的问题。更新 gradle 插件版本

classpath 'com.android.tools.build:gradle:4.0.2' // currently 4.1.0 might also apply

可以查看当前版本here