Android_项目_自定义编译后APK文件名问题

2018-03-01  本文已影响0人  宋木木的征途是星辰大海

自定义编译后APK文件名问题

初遇

gradle 打包,自定义 apk 名称代码报错:

(Cannot set the value of read-only property ‘outputFile’ ) 
Error:(56, 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.

为何

Android Studio 3.0 的自带 Gradle 版本是 4.1,插件版本是 3.0.0,所以如果你使用的是老版本,就会出现一些小的兼容问题。

解决

旧代码:

        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                if (output.outputFile != null && output.outputFile.name.endsWith('.apk')
                        && 'release'.equals(variant.buildType.name)) {
                    def apkFile = new File(
                            output.outputFile.getParent(),
                            "CodeBox_${variant.flavorName}_v${variant.versionName}_${variant.versionCode}_${buildTime()}.apk")
                    output.outputFile = apkFile
                }
            }
        }

新代码:

        android.applicationVariants.all { variant ->
            variant.outputs.all {
                outputFileName = "CodeBox_${variant.flavorName}_v${variant.versionName}_${variant.versionCode}_${buildTime()}.apk"
            }
        }
上一篇下一篇

猜你喜欢

热点阅读