我现在将 Gradle 用于我的所有项目,甚至用于生成 javadoc。
android.libraryVariants.all { variant ->
task("generate${variant.name}Javadoc", type: Javadoc) {
title = "$name $version API"
source = variant.javaCompile.source
ext.androidJar = "${android.plugin.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
ext.googlePlayServicesJar = "${android.plugin.sdkDirectory}/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar"
classpath = files(variant.javaCompile.classpath.files, ext.androidJar, ext.googlePlayServicesJar)
options.links("http://docs.oracle.com/javase/7/docs/api/");
options.links("http://d.android.com/reference/");
//options.linksOffline("http://d.android.com/reference", "${android.plugin.sdkDirectory}/docs/reference");
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
}
使用该代码,我一切正常,除了一件事:常规的 Android API 对象,如 Activity、Bitmap 等。 Java 的链接工作正常。
最终生成的文档没有链接到http://d.android.com/reference .
我尝试了 options.links() 和 options.linksOffline()
都没有成功。
编辑
感谢@ejb,问题是您不能同时提供多个options.links()
。
因此,我将 options.links()
用于 Java 的文档,将 options.linksOffline()
用于 Android 的文档:
options {
links("http://docs.oracle.com/javase/7/docs/api/");
linksOffline("http://d.android.com/reference", "${android.plugin.sdkDirectory}/docs/reference");
//stylesheetFile = new File(projectDir, "stylesheet.css");
}
最佳答案
我能够成功链接到 http://d.android.com/reference使用下面的代码 fragment 这在功能上正是你所拥有的(据我所知)。
android.libraryVariants.all { variant ->
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
// title = ''
// description = ''
source = variant.javaCompile.source
classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath())
options {
links "http://docs.oracle.com/javase/7/docs/api/"
linksOffline "http://d.android.com/reference","${android.sdkDirectory}/docs/reference"
}
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
}
所以这里还有其他问题。
您必须离线构建 javadoc,因为在 Web 服务的路径上似乎没有 package-list
可用。也许仔细检查您是否确实在本地加载了文档,并确保 /[android-sdk]/docs/reference
目录中有一个 package-list
。
如果你还是不明白,也许你可以发布输出。
您可能会检查的另一件事是 ./build/tmp/[taskname]/javadoc.options
,所述文件的 head
应仔细显示适当的选项.要检查的内容包括在 -classpath 中正确包含 android.jar 以及是否存在带有预期参数的 linksOffline:-linksoffline extDocURL packageListLoc
javadoc.options
应该有两个选项,只有各自的参数:
-linksoffline 'http://d.android.come/reference' '[sdkDir]/docs/reference'
-links 'http://docs.oracle.com/javase/7/docs/api/'
EDIT:android.getBootClasspath()
更好,感谢 P-chan。
关于android - Gradle、Javadoc 和 Android 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23297562/