出于某种原因,我无法使用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?如果没有,我怎么能创建一个,我需要用我的项目给它。
答案 0 :(得分:33)
这里给出的两个答案的组合对我来说效果很好。虽然文档生成正常,但仍然会收到900个警告和140个错误,但它们都与android软件包有关。这只是给定解决方案的组合,并为那些不熟悉Android Studio或命令行界面的人解释过。
如何在ANDROID STUDIO中生成JAVADOC
&#34;棘手&#34; part,&#34;其他命令行参数&#34;。在漂亮的GUI下,可以直接调用运行javadoc生成器的javadoc
命令。命令行使用如下结构:program_name [-flag] argument [-flag] argument
,您可以猜测它会调用具有某些可选行为的程序,并传入应该的行为。
通过在&#34;其他命令行参数&#34;
下指定以下内容-encoding utf-8 -bootclasspath /path/to/sdk/platforms/android-##/android.jar
然后点击确定你真的用这些标志和参数调用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')
}