使用gradle从javadoc中排除R.java的正确方法
我正在用这个gradle任务为我的Android项目生成javadoc:使用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
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类的任务之一