在com.android.build.gradle.internal.api.ApplicationVariantImpl找不到属性'outputFile'
更新到AS 1.0 RC 1和插件0.14.4后,我的build.gradle的重命名部分有问题:
applicationVariants.all { variant -> def file = variant.outputFile variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } 现在抛出:
 Error:(78, 0) Could not find property 'outputFile' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@67e7625f. 
也不能跳转到ApplicationVariantImpl类来查看属性是如何被重命名的。 任何人都知道这个解决方法?
尝试这个
 applicationVariants.all { variant -> variant.outputs.each { output -> def file = output.outputFile output.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } } 
更全面:
 applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } } 
这可能会发生几个原因:
1.)首先像@ Khalidov先前所说的那样 ,试试
 applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = ... } } 
2.)第二次尝试更新所有其他插件。
例如,我得到这个问题的勺子 ,通过更新勺解决了:
 classpath 'com.stanfy.spoon:spoon-gradle-plugin:0.14.1' 
或者只有一个变体:
 def apk = outputs[0].outputFile 
代替
 def apk = variant.outputFile 
确保你运行的是最新的gradle版本(不是插件,自行编译)。
 检查你的gradle-wrapper.properties 。 你在运行gradle 2.1吗? 
有关兼容性的更多信息: http : //tools.android.com/tech-docs/new-build-system/version-compatibility
我设法解决如下:
旧:
 buildTypes { libertação { runProguard false // esta linha tem que ser mudado proguardFiles getDefaultProguardFile ( 'android.txt proguard-' ), 'proguard-rules.pro' } 
}
新:
 buildTypes { libertação { minifyEnabled false // nova versão proguardFiles getDefaultProguardFile ( 'android.txt proguard-' ), 'proguard-rules.pro' } 
}
(26,0 )Gradle的DSL方法没有find:'runProguard()'在你的项目的文件buil.gradle中编辑
而且编辑之后也是这一行:
 applicationVariants . all { variant -> variant . outputs . each { output -> def file = output . outputFile output . outputFile = new File ( file . parent , file . name . replace ( ".apk" , "-" + defaultConfig . versionName + ".apk" )) } 
}
就像那里说的那样 这解决了我!