生成Javadoc错误Android Studio

时间:2014-06-18 22:48:58

标签: android javadoc

出于某种原因,我无法使用Android Studio生成javadoc,在96次警告之后它给了我这个:

95 warnings
java.lang.NullPointerException
at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:83)
at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:44)
at com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:496)
at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:453)
at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:491)
at com.sun.tools.doclets.internal.toolkit.util.ClassTree.processType(ClassTree.java:194)
at com.sun.tools.doclets.internal.toolkit.util.ClassTree.buildTree(ClassTree.java:146)
at com.sun.tools.doclets.internal.toolkit.util.ClassTree.<init>(ClassTree.java:91)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:123)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)
at com.sun.tools.doclets.standard.Standard.start(Standard.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:280)
at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160)
at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:397)
at com.sun.tools.javadoc.Start.begin(Start.java:167)
at com.sun.tools.javadoc.Main.execute(Main.java:59)
at com.sun.tools.javadoc.Main.main(Main.java:49)

javadoc退出,退出代码为1

有没有办法在android studio中创建javadoc?如果没有,我怎么能创建一个,我需要用我的项目给它。

5 个答案:

答案 0 :(得分:33)

这里给出的两个答案的组合对我来说效果很好。虽然文档生成正常,但仍然会收到900个警告和140个错误,但它们都与android软件包有关。这只是给定解决方案的组合,并为那些不熟悉Android Studio或命令行界面的人解释过。

如何在ANDROID STUDIO中生成JAVADOC

  1. 打开Android Studio&gt;工具&gt;生成Javadoc
  2. 选择范围,通常是整个项目
  3. 检查包含jdk和库来源
  4. 指定输出目录。将在此处转储大量文件,因此我建议您创建一个新文件夹。
  5. 选择要公开的方法。通常受到保护是可取的,除非它必须让学校看起来令人印象深刻。
  6. &#34;棘手&#34; part,&#34;其他命令行参数&#34;。在漂亮的GUI下,可以直接调用运行javadoc生成器的javadoc命令。命令行使用如下结构:program_name [-flag] argument [-flag] argument,您可以猜测它会调用具有某些可选行为的程序,并传入应该的行为。

    通过在&#34;其他命令行参数&#34;

    下指定以下内容
    1. -encoding utf-8 -bootclasspath /path/to/sdk/platforms/android-##/android.jar然后点击确定
    2. 你真的用这些标志和参数调用javadoc程序。这两个标志允许javadoc程序忽略unicode字符并找到android.jar,虽然看起来标有#的所有内容都被读作数字,并且android javadocs被它们填充。

      我敦促您仔细阅读有关课程的警告,尽管垃圾邮件似乎很多,javadoc会在您忘记空的@return语句时告诉您。

答案 1 :(得分:9)

"other command line arguments"上添加以下行修复了错误:

-bootclasspath /path/to/sdk/platforms/android-##/android.jar

答案 2 :(得分:2)

我认为此问题并非特定于Android Studio。我猜你的JavaDoc评论中有Unicode字符的时候会发生这种情况。

尝试使用以下命令:

javadoc -encoding utf-8

或者,您可以使用Unicode转义(例如\ u0000)而不是直接包含Unicode字符。

在Eclipse中,您可以向JavaDoc命令添加额外内容:

项目 - &gt;生成Javadoc - &gt;下一步 - &gt;在最后一页上,在Extra Javadoc选项中写:

-encoding UTF-8

答案 3 :(得分:0)

如果您有一个包含转义的unicode的静态最终字符串变量,您可以尝试引用doc中字符串的值。 Android Studio能够为我解决侧栏文档中的unicode问题。如果您尝试从命令行生成文档,我不知道这是否有效。

private static final String UNICODE_VALUE = "\u251c";//or whatever string

/**
 * {@value #UNICODE_VALUE}
 */
//whatever you want to document

答案 4 :(得分:0)

我知道这可能会迟到,但值得付出努力。你可以将它添加到gradle.build文件

tasks.withType(Javadoc) {
    options.addStringOption('Xdoclint:none', '-quiet')
    options.addStringOption('encoding', 'UTF-8')
    options.addStringOption('charSet', 'UTF-8')
}