在Android 升级到3.0后,在打开项目时按照提示升级Gradle 插件升级后,在重新编译项目后,gradle 文件会报错。有过这样的经验后,每次报错时自己都知道是哪个问题,但是具体更改的内容自己总是记不住,所以记录下来,加深理解和记忆。
# 一
- 报错内容
Error:All flavors must now belong to a named flavor dimension.
- 解决方案
flavorDimensions "color"
productFlavors{
dev {
....
dimension "color"
.....
}
prod {
....
dimension "color"
....
}
}
# 二
- 报错内容
Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated
- 解决方案
-
使用 all() 替换 each()
-
使用 outputFileName 替换 output.outputFile
-
原内容
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
def fileName = "new_app_phone_${defaultConfig.versionName}_${defaultConfig.versionCode}_release.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
修改后内容
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "new_app_phone_${defaultConfig.versionName}_${defaultConfig.versionCode}_release.apk"
}
}
网友评论