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

问题描述

运行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