Android Studio Javadoc:找不到符号

Android Studio Javadoc: Cannot find symbol

我正在尝试准备我的 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: cannot find symbol"
  2. 我为 Android class 编写的每个 Javadoc 参考,例如 {@link 工具栏},都会报告 "error: reference not found"
  3. 错误

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

编辑 看起来并不是所有 Android class link 都在造成问题,可能只是 class 来自 Android 支持库(这也是注释的来源)。 link 是否需要对 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.javaCompileProvider.get().classpath.files
    })
}

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

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

See here for more info on the Javadoc Task