在gradle中更改apk文件名

时间:2017-06-20 14:08:48

标签: android android-gradle

我正在尝试使用android构建工具" com.android.tools.build:gradle:3.0.0-alpha4"在我的项目中。在我的构建脚本中,我重命名输出apk,它在过去运行良好但似乎不再受支持。

applicationVariants.all { variant ->

    def filename = "foo-${variant.baseName}-${variant.versionName}-(${android.defaultConfig.versionCode}).apk"

    variant.outputs.all { output ->
        output.outputFile = new File(
                output.outputFile.parent,
                filename
        )
    }
}

现在我试图改变的属性变得不可改变了:

  

错误:无法设置只读属性的值" outputFile' for apkVariantOutputImpl_Decorated {apkData = Main {type = MAIN,fullName = stageDebug,filters = []}},类型为com.android.build.gradle.internal.api.ApkVariantOutputImpl。

有新方法或替代方法吗?

2 个答案:

答案 0 :(得分:1)

  1. 更改each - >到all
  2. 更改output.outputFile - >到outputFileName
  3. 之前:

    android.applicationVariants.all { variant ->
    
        variant.outputs.each { output ->
            def finalVersionCode =v10000 + versionCode
            output.versionCodeOverride = finalVersionCode
            output.outputFile = new File(
                 output.outputFile.parent,       output.outputFile.name.replace(".apk","-${finalVersion}.apk"))
        }
    }
    

    后:

    android.applicationVariants.all { variant ->
    
        variant.outputs.all { output ->
            def finalVersionCode = 10000 + versionCode
            output.versionCodeOverride = finalVersionCode
            outputFileName = new File(
                 output.outputFile.parent,
                 outputFileName.replace(".apk", "-${finalVersionCode}.apk"))
        }
    }
    

答案 1 :(得分:0)

添加例如versionName添加

到apk
 setProperty("archivesBaseName", archivesBaseName + "-" + versionName)

defaultConfig关闭。