Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=M

错误

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 插件 3.0.0 引入了一些移除特定功能的 API 变更,可能会破坏您现有的构建。

output.outputFile变成了只读属性,不能再往里面写东西了;

参考:https://developer.android.google.cn/studio/build/gradle-plugin-3-0-0-migration.html#variant_api

解决

 android.applicationVariants.all { variant ->
        variant.outputs.each {
            def file = it.outputFile
            it.outputFile = new File(file.parent, file.name.replace(".apk", "-${variant.versionName}.apk"))
        }

    }
    改为
     variant.outputs.all {
            outputFileName  ="pudding" + "_v" + variant.versionName + "_"  + buildType.name + ".apk"
        }
	或者携带更全的参数
       variant.outputs.all {
           outputFileName  ="pudding" + "_v" +
                   defaultConfig.versionName + "_" + defaultConfig.versionCode + "_" +
                   new Date().format("yyyy-MM-dd") + "_" + buildType.name +
                   ".apk"
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值