Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法设置只读属性的值';输出文件';对于使用android studio 3.1.3装饰的ApkVariantOutputImpl__Android_Android Proguard_Android Studio 3.1.3 - Fatal编程技术网

无法设置只读属性的值';输出文件';对于使用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