我最近将一个项目从gradle 2.1.0迁移到了gradle实验插件0.7.0
在我的2.1.0脚本中,我有根据特定命名约定重命名APK的脚本。项目名称,后跟版本,日期时间。
新的gradle实验插件似乎不再能识别这个脚本了。有人可以帮忙吗?
gradle实验插件无法识别的脚本如下所示。
android.applicationVariants.all { variant ->
def appName
//Check if an applicationName property is supplied; if not use the name of the parent project.
if (project.hasProperty("applicationName")) {
appName = applicationName
} else {
appName = parent.name
}
variant.outputs.each { output ->
def newApkName
//If there's no ZipAlign task it means that our artifact will be unaligned and we need to mark it as such.
if (output.zipAlign) {
newApkName = "${appName}-${variant.versionName}.apk"
} else {
newApkName = "${appName}-${variant.versionName}-unaligned.apk"
}
output.outputFile = new File(output.outputFile.parent, newApkName.replace(".apk", "-" + getDateTime() + ".apk"))
}
}
import java.text.DateFormat
import java.text.SimpleDateFormat
def getDateTime() {
DateFormat df = new SimpleDateFormat("YYYY-MM-dd");
return df.format(new Date());
}
错误是
Error:FAILURE: Build failed with an exception.
* Where:
Script '/Users/vp/newconstruction/android-vpn/artifacts.gradle' line: 1
* What went wrong:
A problem occurred evaluating script.
> Could not find property 'android' on project ':main'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
答案 0 :(得分:1)
经过多次努力,我想在没有多少选择的情况下回答我自己的问题。
从gradle实验插件的官方文档中可以清楚地看到,该插件仍处于早期开发阶段。实验性插件的许多功能都不起作用。
http://tools.android.com/tech-docs/new-build-system/gradle-experimental
答案 1 :(得分:0)
@ developer1011,感谢您回答自己的问题。我也在重命名我的APK和AAR,并且遇到了访问变体的问题。我更加具体地注意到它现在谈论的变体功能非常非常有限。
http://tools.android.com/tech-docs/new-build-system/gradle-experimental
用于修改变体及其任务的DSL现在非常非常有限。