更新到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类来查看属性是如何重命名的。 有谁知道这方面的解决方法吗?
答案 0 :(得分:83)
试试这个
applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
output.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
答案 1 :(得分:21)
更全面:
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
答案 2 :(得分:6)
这种情况可能有以下几种原因:
1。)首先如@Khalidov之前所述,尝试
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = ...
}
}
2.。)第二次尝试更新所有其他插件。
例如,我遇到Spoon的问题,通过更新Spoon解决了以下问题:
classpath 'com.stanfy.spoon:spoon-gradle-plugin:0.14.1'
答案 3 :(得分:5)
或者只有一个变体:
def apk = outputs[0].outputFile
而不是
def apk = variant.outputFile
答案 4 :(得分:1)
确保你运行最新的gradle版本(不是插件,自己动手)。
检查gradle-wrapper.properties
。你在运行gradle 2.1吗?
有关兼容性的更多信息:http://tools.android.com/tech-docs/new-build-system/version-compatibility
答案 5 :(得分:0)
我设法解决如下:
旧:
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'
}
}
在您的项目的文件buil.gradle中编辑,如本文由ruan65所述 Error:(26, 0) Gradle DSL method not found: 'runProguard()'
并且在编辑了这一行之后:
applicationVariants . all { variant ->
variant . outputs . each { output ->
def file = output . outputFile
output . outputFile = new File ( file . parent , file . name . replace ( ".apk" , "-" + defaultConfig . versionName + ".apk" ))
}
}
正如那里所说的那样。 这让我安定下来了!