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

我正在用这个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 ,所以我没有得到R.html在输出目录。 但是,我得到非常恼人的错误cannot find symbol class R在生成文档的过程中,我通常的java类,在行import com.mypackagename.R 。 我使用像R.string.string_res常见的Android的东西,所以我不能删除此导入。 有没有适当的方法来包含符号R索引,但不包括它到javadoc,或者,至less,只是为了抑制这个错误?

Related of "用gradle从javadoc中排除R.java的正确方法"

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

 classpath += files("build/generated/source/r/${variant.flavorName}/release") classpath += files("build/generated/source/buildConfig/${variant.flavorName}/release") 

但在这种情况下,您的任务应该依赖于生成R类的任务之一。