如何解决无法为ApkVariantOutputImpl_Decorated设置只读属性'outputFile'的值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (574)

我在我的gradle脚本中使用了以下代码来重命名使用AndroidStudio生成的apks:

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        output.outputFile = new File(output.outputFile.parent, defaultConfig.versionCode + "_" + output.outputFile.name)
    }
}

所以它产生的名字如下:345-app-release.apk,其中345是versionCode。

但更新到AndroidStudio 3.0后,它返回以下错误:

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

我如何通过新的构建工具实现类似的重命名?

提问于
用户回答回答于

使用output.outputFileName而不是output.outputFile。

用户回答回答于

Studio 3.0+和Gradle 3.0+的解决方案

在Android中更改APK的名称 :

applicationVariants.all { variant ->
   variant.outputs.each { output ->
      output.outputFileName = new File(output.outputFile.parent, output.outputFile.name.replace("app-release.apk", "Your_name.apk"))
   }
}

扫码关注云+社区

领取腾讯云代金券