使用gradle从javadoc中排除R.java的正确方法

使用gradle从javadoc中排除R.java的正确方法,java,android,gradle,javadoc,Java,Android,Gradle,Javadoc,我正在用这个gradle任务为我的Android项目生成javadoc: android.applicationVariants.all { variant -> task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) { description "Generates Javadoc for $variant.name." source = variant.javaComp

我正在用这个gradle任务为我的Android项目生成javadoc:

android.applicationVariants.all { variant ->
    task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
        description "Generates Javadoc for $variant.name."
        source = variant.javaCompile.source
        classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath())
        exclude '**/BuildConfig.java'
        exclude '**/R.java'
        options.links("http://docs.oracle.com/javase/7/docs/api/");
        options.linksOffline("http://d.android.com/reference","${android.sdkDirectory}/docs/reference");
        options {
            failOnError false
        }
        destinationDir = file("${project.projectDir}/javadoc")
    }
}
它排除了
R.java
,所以在output dir中没有R.html。 但是,在为常用java类生成文档的过程中,
import com.mypackagename.R
行出现了非常恼人的错误。我使用常见的android工具,如
R.string.string\u res
,因此无法删除此导入。
是否有合适的方法将符号
R
包含到索引中,但不将其包含到javadoc中,或者至少简单地消除此错误?

您可以尝试在代码中添加以下两行:

classpath += files("build/generated/source/r/${variant.flavorName}/release")
classpath += files("build/generated/source/buildConfig/${variant.flavorName}/release")
但在这种情况下,您的任务应该依赖于生成R类的任务之一