Androidのソースコードが公開された。ライブラリにソースを関連付けるとデバック実行時にステップインができたり、Exceptionが発生した時に非常に分かりやすく有用なわけだが、android.jar にソースの関連付け(ソース添付)をしようと思っても、「Thre current class path entty belongs to container ‘Android Library’ which does not allow user modifications to souce attachements on its entries.」と表示され、関連付けができない。

ネットで少し調べた所、ADTのリコンパイルをする等の記事が出ていたが、手間がかかるために簡単な方法で対処しました。

ソースコードの用意

1.C:\android\android_source\jar_sourcesディレクトリ(任意)を作成して用意する。
2.C:\android\android-sdk-windows-1.0_r1\android.jarの中をみて、ディレクトリ構造を合わせたソースコードを上記ディレクトリにコピーをする。
android.jarの中身
jar_attache2.png
ソースディレクトリの中身
jar_attache3.png
ソースコードの対応
とりあえずあまり使わなそうな物はコピーするのがめんどくさいので省略し、後から必要な時に追加することにしました。
android
mydroid\frameworks\base\core\java\android
assets
mydroid\frameworks\base\core\res\assets
com
mydroid\frameworks\base\core\java\com
res
mydroid\frameworks\base\core\res\res

ソースの関連付け

1.Androidプロジェクトを開き、プロパティを開く
2.Javaのビルドパス選択
3.ライブラリタグ選択
4.「外部jarの追加」「C:\android\android-sdk-windows-1.0_r1\android.jar」を選択
5.追加されたandroid.jarのソース添付を選択し、「編集」ボタンを押す。
6.先にソースを集めたディレクトリ「C:/android/android_source/jar_sources」を選択
7.Javadoc locationは、「Android Library」の内容と同じ物をセットする(file:/C:/android/android-sdk-windows-1.0_r1/docs/reference/)
8.最後にプロジェクト作成時に自動的に追加されていた、「Android Library」を削除
7が終わった時の画面

確認作業

1.プロジェクトをリコンパイル
2.onCreateにブレークポイントを置く
3.デバック実行をし、super.onCreate(savedInstanceState);にステップインをする
4.ソースコードが表示されれば成功