Подтвердить что ты не робот

Генерировать ошибку Javadoc для Android Studio

По какой-то причине я не могу создать 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? Если нет, как я могу создать его, мне нужно передать его с моим проектом.

4b9b3361

Ответ 1

Добавление следующей строки в "other command line arguments" устраняет ошибки:

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

Ответ 2

Комбинация двух приведенных здесь ответов хорошо работала для меня. Несмотря на то, что документы созданы нормально, я все равно получаю 900 предупреждений и 140 ошибок, но все они связаны с пакетами android. Это всего лишь данные решения, объединенные и объясненные немного для людей, которые не знакомы с интерфейсами Android Studio или командной строки.

КАК ПОЛУЧИТЬ ДЖАВАДОК В АНДРОИДСКОЙ СТУДИИ

  • Откройте Android Studio > Инструменты > Сгенерировать Javadoc
  • Выберите область действия, обычно весь проект
  • Проверить, включают ли источники jdk и библиотеки
  • Укажите выходной каталог. Здесь загружается загрузка файлов, поэтому я рекомендую создать новую папку.
  • Выберите, какие методы вы хотите открыть. Обычно защищенная является желательной, если она не должна выглядеть впечатляюще для школы.

"сложная" часть, "Другие аргументы командной строки". Под довольно графическим интерфейсом есть прямой вызов команды javadoc, которая запускает генератор javadoc. Командная строка использует такую ​​структуру: program_name [-flag] argument [-flag] argument, которая, как вы можете догадаться, вызывает программу с определенным необязательным поведением, передавая то, что должно быть.

Итак, указав следующее в разделе "Другие аргументы командной строки"

  1. -encoding utf-8 -bootclasspath /path/to/sdk/platforms/android-##/android.jar, затем нажмите OK

вы действительно вызываете программу javadoc с этими флагами и аргументами. Эти два флага позволяют программе javadoc игнорировать символы юникода и найти файл android.jar, хотя кажется, что все, что помечено символом #, считывается как число, и javadocs андроида заполняется ими.

Я призываю вас прочитать предупреждения для своих классов, несмотря на кажущееся большое количество спама, поскольку javadoc расскажет вам, когда вы забыли такие вещи, как пустые заявления @return.

Ответ 3

Я не думаю, что эта проблема специфична для Android Studio. Я предполагаю, что это произойдет в любое время, когда у вас есть символы Unicode в комментариях к JavaDoc.

Попробуйте использовать следующую команду:

javadoc -encoding utf-8

Кроме того, вы можете просто использовать Unicode escapes (например,\u0000) вместо того, чтобы включать символы Unicode напрямую.

В Eclipse вы можете добавить дополнительные функции в команду JavaDoc:

Проект → Создать Javadoc → Далее → на последней странице, в параметрах Extra Javadoc напишите:

-encoding UTF-8

Ответ 4

Если у вас есть статическая конечная строковая переменная, содержащая экранированный юникод, вы можете попробовать ссылаться на значение строки в документе. Android Studio удалось разрешить юникод в документации на боковой панели для меня. Я не знаю, будет ли это работать, если вы пытаетесь создать документ из командной строки.

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

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

Ответ 5

Я знаю, что это может быть поздно, но это стоит усилий. вы можете добавить это в файл gradle.build

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