Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generate Javadoc error Android Studio

For some reason I cannot generate a javadoc with Android Studio, after like 96 warnings it gives me this:

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 exited with exit code 1

Is there a way to create the javadoc in android studio? If not, how could i create one, I need to give it with my project.

like image 908
this.user3272243 Avatar asked Jun 18 '14 22:06

this.user3272243


3 Answers

A combination of the two answers given here worked well for me. Though the docs generate fine, I still get 900 warnings and 140 errors BUT they're all related to the android packages. This is just the given solutions combined and explained a bit for people who aren't familiar with Android Studio or command line interfaces.

HOW TO GENERATE JAVADOC IN ANDROID STUDIO

  1. Open Android Studio > Tools > Generate Javadoc
  2. Select the scope, usually the whole project
  3. Check include jdk and library sources
  4. Specify the output directory. A load of files will be dumped here, so I recommend creating a new folder.
  5. Select which methods you want to expose. Usually protected is desirable unless it has to look impressive for school.

The "tricky" part, "Other command line arguments". Under the pretty GUI, there's a direct call to the javadoc command, which runs the javadoc generator. The command line uses a structure like this: program_name [-flag] argument [-flag] argument, which as you can guess calls the program with certain optional behaviours, passing in what those should be.

So by specifying the following under "Other command line arguments"

  1. -encoding utf-8 -bootclasspath /path/to/sdk/platforms/android-##/android.jar followed by clicking OK

you're really calling the javadoc program with these flags and arguments. These two flags allow the javadoc program to ignore unicode characters and find the android.jar though it seems that everything marked with # is read as a number and the android javadocs are filled with them.

I urge you to read through the warnings for your classes despite the seemingly large amount of spam, as javadoc will tell you when you've forgotten things like empty @return statements.

like image 179
G_V Avatar answered Oct 18 '22 09:10

G_V


Adding the following line on "other command line arguments" fixed the errors:

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

like image 10
this.user3272243 Avatar answered Oct 18 '22 11:10

this.user3272243


I don't think this issue is specific to Android Studio. I'm guessing it will happen anytime you've got Unicode characters in your JavaDoc comments.

Try using the following command:

javadoc -encoding utf-8

Alternatively, you can just use Unicode escapes (e.g. \u0000) instead of including Unicode characters directly.

In Eclipse, you can add extras to the JavaDoc command:

Project -> Generate Javadoc -> Next -> on the last page, in Extra Javadoc options write:

-encoding UTF-8
like image 2
bstar55 Avatar answered Oct 18 '22 11:10

bstar55