2012年3月31日土曜日

[Android] Android-SDKでやってはいけないこと

Do not use a reserved word in the resource name

先日、new.pngという画像ファイルをAndroidプロジェクトに追加したらプロジェクトが壊れてしまいました。
原因は「new」という単語がJavaの予約語だったためです。

予約語 (Java) - Wikipedia
http://ja.wikipedia.org/wiki/%E4%BA%88%E7%B4%84%E8%AA%9E_%28Java%29

プロジェクトが壊れてしまった場合の直し方です。
  1. ファイル名やIDを予約語以外の単語に変更する
  2. (new.png → new_image.png)
  3. genフォルダー - (パッケージ名) - R.javaファイルを削除してプロジェクトをリフレッシュする
  4. (Eclipseのパッケージ・エクスプローラーで右クリックしてRefreshをクリック)
    ※削除する前に念のためR.javaをバックアップしてください。
ファイル名を直してもR.javaが壊れたままなのでご注意ください。

画像ファイルに限らずオーディオファイルやレイアウトXMLのウィジットIDなどに予約語を使った場合もプロジェクトが壊れます。
リソース名を変数名として扱うAndroid-SDKならではの特徴です。

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿