android - 在gradle中更改apk文件名

标签 android android-gradle-plugin

我正在尝试在我的项目中使用 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
        )
    }
}

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

Error: Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=stageDebug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.

是否有新的或替代的方法来做到这一点?

最佳答案

  1. each -> 改为all
  2. output.outputFile -> 更改为 outputFileName

之前:

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"))
    }
}

关于android - 在gradle中更改apk文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655405/

相关文章:

java - 在 Android 中将 2015-02-24 转换为一天?

android - 如何在android中添加多个按钮到scrollview

android - 无法解决:com.github.PhilJay.MPAndroidChart:v2.2.4

java - Gradle 同步失败 : Unable to load class 'org.gradle.internal.logging.LoggingManagerInternal'

安卓+渐变: multi-project w/library projects

android - Android Studio 中应用级 gradle 文件中 "postprocessing" block 内的 'release' block 是什么?

java - 如何使用 Parse.com 和 Android 查询用户指针 <_user> 字段

Android TextView 完全居中文本

java - 安卓工作室 : com. android.ide.common.process.ProcessException:

java - 迁移到 Android Studio 2.2 后出现 DexIndexOverflowException