无法使用Android Studio 3.1.3为ApkVariantOutputImpl_Decorated设置只读属性'outputFile'的值 [英] Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated with android studio 3.1.3
问题描述
你好朋友,
当在新的Android Studio版本中使用proguard规则为3.1.3
时,我在app.gradle文件中遇到一个问题.它可以在旧Studio版本2.3.3
上正常工作.
我的完整错误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.
Hello friends,
I am facing one issue in app.gradle file when use proguard ruls with new android studio version is3.1.3
. its working proper on old studio version2.3.3
.
My full errorCannot 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.
App.Gradle文件:
android {
.....................
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
}
}
}
App.Gradle file:
android {
.....................
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
}
}
}
感谢,
推荐答案
适用于Gradle 3.0 + **
For Gradle 3.0+**
android {
...
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.all {
def formattedDate = new Date().format('yyyyMMddHHmmss')
def flavor = variant.name
def versionName = variant.versionName
outputFileName = "AppName_${versionName}_${flavor}_${formattedDate}.apk"
}
}
}
}
...
}
结果:
AppName_release_1_20200121175123.apk
AppName_release_1_20200121175123.apk
这篇关于无法使用Android Studio 3.1.3为ApkVariantOutputImpl_Decorated设置只读属性'outputFile'的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!