R.javaが生成されない件の対処方法

Android Developers」からサンプルコードをダウンロードしてEclipseにインポートしましたが、onCreateメソッドの引数にて以下のエラーが表示されました。

「Rを解決できません」

どうやらプロジェクト作成時に本来生成されるはずのR.javaが、生成されなかったようです。そこで、R.javaが生成されない時の対処方法をざっくり検索したところ、以下のような方法がヒットしました。

・プロジェクトを右クリックして「Androidツール」→「プロジェクト・プロパティを修正」を実行する。
Eclipseのメニューから「プロジェクト」を選択し「クリーン」を実行する。
Eclipseのメニューから「ウィンドウ」を選択し「設定」→「Java」→「コンパイラー」のコンパイラー準拠レベルを変更する。
・とりあえずビルド(実行)してみる。

これらを行えばR.javaが生成されることがあるそうですが、私の開発環境ではいずれを行なってもうまく行きませんでした。

そこで、コードをインポートしたプロジェクト内の、他のソースでエラーが出ている箇所を調べました。結論から言えば、レイアウトファイル内に指定してあった属性の「match_parent」を「fill_parent」に修正すれば解決しました。

「match_parent」はAPIレベル8から使用可能になった属性です。(正確に言えば「fill_parent」から「match_parent」に名称変更されました。) 今回プロジェクトを作成する時にAPIレベルを4に指定したため、その辺りで不整合が発生したようです。

こういった所で、想定外の作業時間を取られてしまいます。今後もAndroidは仕様が変更されやすいと思うので、SDKなどの変更箇所を逐一ウォッチする必要がありますね。