[Android Tips] Eclipseからjavadocを正常に出力させるためのパラメータ 【小ネタ】
javadoc
EclipseでJavadocを出力する際にすんなりと行かなかったので、記録しておきます。
環境
OS : Windows 7 Professional 64bit
JDK : jdk 1.7.0_05
Eclipse : Eclipse 4.2 JUNO
Javadocを出力する手順は簡単で、File > Export > Javadoc を選んであとはナビゲーションに従うだけなのですが。何も考えずにやると
D:\dev\git\Sample\jp\classmethod\android\sample\Sample.java:7: この文字は、エンコーディング MS932 にマップできません。 /** 蜃ヲ逅?オ先棡 */ .... エラー 100 個
怒られます。
これはプロジェクトの設定をUTF-8デフォルトに設定しているので、文字エンコーディングでエラーが起きているようです。UTF-8を指定して再度実行します
文字エンコーディングの指定
Extra Javadoc options (path names with white spaces must be enclosed in quotes):
上記の箇所に以下の引数を入力します
-encoding "utf-8" -charset "utf-8"
再度実行してみます
パッケージ org.json は存在しません。 import org.json.JSONException; .... 全パッケージとクラスの階層ツリーを作成しています... java.lang.NullPointerException at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:67) at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:29) at com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:439) at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:386) at com.sun.tools.doclets.internal.toolkit.util.Util.getAllInterfaces(Util.java:424) at com.sun.tools.doclets.internal.toolkit.util.ClassTree.processType(ClassTree.java:162) at com.sun.tools.doclets.internal.toolkit.util.ClassTree.processType(ClassTree.java:155) at com.sun.tools.doclets.internal.toolkit.util.ClassTree.buildTree(ClassTree.java:114) at com.sun.tools.doclets.internal.toolkit.util.ClassTree.<init>(ClassTree.java:73) at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:104) at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64) at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42) at com.sun.tools.doclets.standard.Standard.start(Standard.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269) at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143) at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340) at com.sun.tools.javadoc.Start.begin(Start.java:128) at com.sun.tools.javadoc.Main.execute(Main.java:41) at com.sun.tools.javadoc.Main.main(Main.java:31) 警告 100 個
また怒られました。どうやらandroid.jarの中身が見えていないようです。クラスパスの設定を行ってあげる必要があります
クラスパスにandroid.jarを通す
Javaのクラスパスの設定はいつも頭が痛いのですが、クラスパスにandroid.jarを読み込ませる設定を行います
Extra Javadoc options (path names with white spaces must be enclosed in quotes):
上記の箇所に以下の引数を入力します。先ほど設定したエンコードの設定と共に記述します
-encoding "utf-8" -charset "utf-8" -bootclasspath D:\dev\android-sdk-windows-2\platforms\android-18\android.jar
当然クラスパスの設定は、各々の環境に合わせて書き換えてください
この設定を適用すれば正常に出力されます
(一部、R.javaに「警告 - @attr は未知のタグです。」という警告がでますが)