简体   繁体   English

如何为 android 应用程序生成 JavaDoc?

[英]How to generate JavaDoc for android application?

I am trying to generate javadoc for android application using a command or a gradle task.我正在尝试使用命令gradle任务为 android 应用程序生成javadoc I tried this command:我试过这个命令:

javadoc -protected -splitindex  -bootclasspath /Users/[username]/Library/Android/sdk/platforms/android-29/android.jar -Xdoclint:none -sourcepath app/src/main/java -subpackages .

And the result was:结果是:

error: package androidx.appcompat.app does not exist import androidx.appcompat.app.AppCompatActivity;

Also I've tried tasks like this:我也尝试过这样的任务:

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

Which gives the same output.这给出了相同的 output。

I had the same problem until I came across this answer: https://stackoverflow.com/a/29164335/10365305在遇到这个答案之前,我遇到了同样的问题: https://stackoverflow.com/a/29164335/10365305

This is how I adapted the build.gradle file for my needs:这就是我根据需要调整build.gradle文件的方式:

android.applicationVariants.all { variant ->
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
    description "Generates Javadoc for $variant.name."

    //(project.android.sourceSets.main.java.srcDirs also works if you don't care about variants)
    source = variant.javaCompile.source 
    destinationDir = file("$rootDir/javadoc/")
    failOnError false

    doFirst {
        ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
        classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)

        // I used a custom doclet
        options.docletpath = configurations.umlDoclet.files as List
        options.doclet = "nl.talsmasoftware.umldoclet.UMLDoclet"

        options.addStringOption "-show-members", "package"
        // more doclet options here...
       
        options.links "https://developer.android.com/reference/"
    }
}}

This will generate multiple gradle tasks for each of your build variants.这将为您的每个构建变体生成多个 gradle 任务。 To see a list of the tasks that have been generated this way, use gradlew tasks --all .要查看以这种方式生成的任务列表,请使用gradlew tasks --all For me, this generated the task app:generateReleaseJavadoc .对我来说,这生成了任务app:generateReleaseJavadoc

Running this task should not (hopefully) lead to the error you mentioned.运行此任务不应(希望)导致您提到的错误。

(I know this is a rather old question but maybe it will help someone.) (我知道这是一个相当古老的问题,但也许它会对某人有所帮助。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM