具体的には以下のようなエラーが出た場合の対処法について書く。
hogehoge.java:60:警告:この文字は、エンコーディング MS932 にマップできません。 * 菴懈?占???シ壻シ願陸譎?螟ァ ・ ・ import android.app.AlertDialog; hogehoge.java:10: パッケージ android.os は存在しません。 import android.os.Bundle; hogehoge.java:12: パッケージ android.widget は存在しません。 ・ ・ ^ hogehoge.java:31: シンボルを見つけられません。 シンボル: クラス Activity public class MyActivity extends Activity ・ ・
これには2つの原因があるので、それぞれ解決していく。なお、ここではEclipseを使ってのJavadocの実行について述べるが、コマンドの場合も同様の手法で解決できる。
参考:
こちらは単純に、ソースコードのエンコードが想定していたのと違うことが原因。
Windowsの場合Eclipseが吐き出すコードはUTF-8なので、Javadocのオプションに文字コードとしてUTF-8に指定して実行すれば解決できる。
Linuxの場合はディストリビューションによってデフォルトの文字コードの設定が違うため、nkfや適当なテキストエディタで文字コードを調べておく必要がある。
オプションの指定方法は以下の通り。
-encoding UTF-8 -charset UTF-8
ここではUTF-8を指定しているが、この部分は自分の環境に合わせた文字コード書き換えること。
この状態で完了を選択すれば、文字化けのエラーは消えたはず。
参考
こちらも、Javadocのオプションから「android.jar」のクラスパスを指定することで解決できる。
オプションの指定方法は上と同じなので省略。
「追加のJavaDocオプション」に以下の記述を追加すればいい。
-classpath "C:\Program Files (x86)\Android\android-sdk\platforms\android-7\android.jar"
なお、「android.jar」のパスは環境によって異なるので適宜修正すること。また、対象とするAndroid OSのバージョンによっても「platforms」以下が変わってくることに注意すべし。
Javadocを実行する際にオプションで以下を指定すればいい。
-encoding UTF-8 -charset UTF-8 -classpath "C:\Program Files (x86)\Android\android-sdk\platforms\android-7\android.jar"
これはコマンドから実行する場合でも同様。