我有一个非常简单的build.gradle
文件包含以下内容:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.1'
}
}
apply plugin: 'android'
android {
buildToolsVersion "17.0.0"
compileSdkVersion 17
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
task generateSources {
doFirst {
def script = "python GenerateSources.py".execute()
script.in.eachLine {line -> println line}
script.err.eachLine {line -> println "ERROR: " + line}
script.waitFor()
}
}
我想要的是跑步generateSources
java编译开始之前的任务。我找到了几种解决方案,例如compileJava.dependsOn("generateSources")
,但不幸的是他们给出了一个错误:
A problem occurred evaluating root project 'Android'.
> Could not find property 'compileJava' on root project 'Android'.
我不了解 Gradle,无法理解这段代码有什么问题。所以我想知道如何修复这个错误。
显然,android
插件没有添加compileJava
任务(如java
插件会)。您可以检查哪些任务可用gradle tasks --all
,然后为您的(否则正确的)依赖声明选择正确的一个。
EDIT:
显然,android
插件以无法像往常一样急切访问的方式推迟任务的创建。解决此问题的一种方法是将访问推迟到访问结束配置阶段:
gradle.projectsEvaluated {
compileJava.dependsOn(generateSources)
}
很可能有一种更惯用的方法来解决您的用例,但需要快速浏览Android 插件文档我找不到一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)