Ответ 1
Добавление следующей строки в "other command line arguments"
устраняет ошибки:
-bootclasspath /path/to/sdk/platforms/android-##/android.jar
По какой-то причине я не могу создать javadoc с Android Studio, после того как 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
Есть ли способ создать javadoc в студии Android? Если нет, как я могу создать его, мне нужно передать его с моим проектом.
Добавление следующей строки в "other command line arguments"
устраняет ошибки:
-bootclasspath /path/to/sdk/platforms/android-##/android.jar
Комбинация двух приведенных здесь ответов хорошо работала для меня. Несмотря на то, что документы созданы нормально, я все равно получаю 900 предупреждений и 140 ошибок, но все они связаны с пакетами android. Это всего лишь данные решения, объединенные и объясненные немного для людей, которые не знакомы с интерфейсами Android Studio или командной строки.
КАК ПОЛУЧИТЬ ДЖАВАДОК В АНДРОИДСКОЙ СТУДИИ
"сложная" часть, "Другие аргументы командной строки". Под довольно графическим интерфейсом есть прямой вызов команды javadoc
, которая запускает генератор javadoc. Командная строка использует такую структуру: program_name [-flag] argument [-flag] argument
, которая, как вы можете догадаться, вызывает программу с определенным необязательным поведением, передавая то, что должно быть.
Итак, указав следующее в разделе "Другие аргументы командной строки"
-encoding utf-8 -bootclasspath /path/to/sdk/platforms/android-##/android.jar
, затем нажмите OKвы действительно вызываете программу javadoc с этими флагами и аргументами. Эти два флага позволяют программе javadoc игнорировать символы юникода и найти файл android.jar, хотя кажется, что все, что помечено символом #, считывается как число, и javadocs андроида заполняется ими.
Я призываю вас прочитать предупреждения для своих классов, несмотря на кажущееся большое количество спама, поскольку javadoc
расскажет вам, когда вы забыли такие вещи, как пустые заявления @return.
Я не думаю, что эта проблема специфична для Android Studio. Я предполагаю, что это произойдет в любое время, когда у вас есть символы Unicode в комментариях к JavaDoc.
Попробуйте использовать следующую команду:
javadoc -encoding utf-8
Кроме того, вы можете просто использовать Unicode escapes (например,\u0000) вместо того, чтобы включать символы Unicode напрямую.
В Eclipse вы можете добавить дополнительные функции в команду JavaDoc:
Проект → Создать Javadoc → Далее → на последней странице, в параметрах Extra Javadoc напишите:
-encoding UTF-8
Если у вас есть статическая конечная строковая переменная, содержащая экранированный юникод, вы можете попробовать ссылаться на значение строки в документе. Android Studio удалось разрешить юникод в документации на боковой панели для меня. Я не знаю, будет ли это работать, если вы пытаетесь создать документ из командной строки.
private static final String UNICODE_VALUE = "\u251c";//or whatever string
/**
* {@value #UNICODE_VALUE}
*/
//whatever you want to document
Я знаю, что это может быть поздно, но это стоит усилий. вы можете добавить это в файл gradle.build
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}