Android Studio Javadoc:找不到符号

我试图准备和上传我的Android库Bintray和该进程的一部分运行以下javadoc任务:

task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) } 

这个任务是一个更大的gradle脚本的一部分: https ://raw.githubusercontent.com/attwellBrian/JCenter/master/bintrayv1.gradle

运行javadoc任务时,会发生以下问题:

  1. 项目中的每个@NonNull和@Nullable注释报告错误“error:can not find symbol”
  2. 我为Android类编写的每一个Javadoc引用(例如{@link Toolbar})都会报告错误“error:reference not found”

如何在生成Javadoc时纠正这些引用问题?

编辑它看起来像它不是所有Android类的链接创build一个问题,它可能只是来自Android支持库(这也是注释来自何处)的类。 是否需要做特殊的事情来链接到gradle依赖关系中的源文件?

你也应该把你所有的依赖添加到javadoc.classpath中。 尝试这个:

 task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) } afterEvaluate { javadoc.classpath += files(android.libraryVariants.collect { variant -> variant.javaCompile.classpath.files }) } 

所以这些错误意味着JavaDoc不能链接不在同一个模块中的类(没有进一步的configuration)。 如果你不关心这个(即超链接到模块以外的类),你可以忽略错误

 task javadoc(type: Javadoc) { failOnError false source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) } 

有关Javadoc任务的更多信息,请参阅此处