无法设置只读属性的值';输出文件';对于使用android studio 3.1.3装饰的ApkVariantOutputImpl_
朋友们好,,无法设置只读属性的值';输出文件';对于使用android studio 3.1.3装饰的ApkVariantOutputImpl_,android,android-proguard,android-studio-3.1.3,Android,Android Proguard,Android Studio 3.1.3,朋友们好,, 当将proguard ruls与新的android studio版本一起使用时,我在app.gradle文件中面临一个问题是3.1.3。它在旧的studio版本2.3.3上正常工作我的完整错误无法为com.android.build.gradle.internal.api.apkvariantoutputinpl.{apkData=Main{type=Main,fullName=debug,filters=[]}类型为com.android.build.gradle.interna
当将proguard ruls与新的android studio版本一起使用时,我在app.gradle文件中面临一个问题是
3.1.3
。它在旧的studio版本2.3.3
上正常工作我的完整错误
无法为com.android.build.gradle.internal.api.apkvariantoutputinpl.{apkData=Main{type=Main,fullName=debug,filters=[]}类型为com.android.build.gradle.internal.api.apkvariantoutputinpl.
App.Gradle文件:android{
.....................
建筑类型{
释放{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'
applicationVariants.all{variant->
variant.outputs.each{output->
output.outputFile=新文件(output.outputFile.parent,output.outputFile.name.replace(“.apk”、“-”+defaultConfig.versionName+”.apk”))
}
}
}
}
}
Thnaks,变量输出不再提供outputFile属性。你应该可以这样得到它:
def variantOutput = ...
def outputFile
try
{
outputFile = variantOutput.outputFile
}
catch (Exception ex)
{
def packageTask = variantOutput.packageApplication
outputFile = packageTask.outputFile
}
对于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_发布版_1_20200121175123.apk