使用自定义插件任务时缺少android.compileSdkVersion

时间:2016-05-24 06:09:22

标签: gradle

我有创建javadocs的任务:

Task tCreateJavadocs = addTask(project, 'createJavadocs', Javadoc.class)
tCreateJavadocs.configure{
source = android.sourceSets.main.java.srcDirs
   classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
failOnError false
}

现在,我有一个自定义插件,我可以移动所有任务并创建一个库,因此我可以将库应用到所有项目中。所以,我想将此任务转移到自定义插件项目。 我在自定义插件项目中编写任务,如下所示:

Task tCreateJavadocs = addTask(project, 'createJavadocs', Javadoc.class)
tCreateJavadocs.configure{
source = project.android.sourceSets.main.java.srcDirs
   classpath += project.files(project.android.getBootClasspath().join(File.pathSeparator))
failOnError false
}

当我使用Android Studio项目编译时,我收到错误'原因:缺少android.compileSdkVersion'。

3 个答案:

答案 0 :(得分:2)

我说你试图使用尚未设置的东西 在您设置compileSdkVersion之后,或者使用afterEvaluate延迟任务配置,以便其他配置已经完成,或者如果可能的话只延迟评估带闭包的有问题的价值。

最后一个选项可能是最好的选项。找出哪条线存在问题,看看是否可以给它Closure,因为这些线通常是懒惰地评估。

答案 1 :(得分:1)

正如上面的答案所示,我补充说:

project.android.compileSdkVersion = 'android-23'
project.android.buildToolsVersion = '23.0.1'

和项目正在建设

答案 2 :(得分:0)

如果我在project.afterEvaluate闭包中编写我的任务定义,问题就解决了。