tmk56のAndroidアプリ開発

tmk56のAndroidアプリ開発

Androidアプリ開発に関することを、備忘録を兼ねて記事にしてます。

Amebaでブログを始めよう!
先日Androidアプリの開発中に、R cannot be resolved to a variableというエラーメッセージが出た。

$tmk56のAndroidアプリ開発-エラーメッセージ1

Androidアプリを開発していると稀に原因不明のエラーが出ることがある。
その場合はProject→cleanを実行して、再度ビルドし直せば大抵の場合は解消するが、
今回のR cannot be resolved to a variableエラーについては何度試しても解消せずに
少しの間ハマってしまった。

原因について色々と検索して調べたところ、どうやらgen配下にR.javaが無くなってしまっている。
R.javaはXMLで宣言したリソースのIDを管理しているクラスである。
自動ビルドをオンにしていると、R.javaは自動で作成されるのだが、これが作成されないと
いうことはどこかXMLの宣言周りがおかしいのかなと思って調べてみた。
だが、結果はどこにも誤りはなかった。

さらに調べていくと、ここのブログで.orgなどと付けたファイルを置いていると、元ファイルと
同じと見倣されて正常に読み込めないとの記載があった。

もしかしてと思い再度自分のプログラムを見直したところ、_bkと付けて残していたxmlファイルが
あったので、これを削除してから再ビルドすると今度はエラーが解消した。
_bkなどと付けてバックアップしているのに、勝手に同じファイルと判断されてエラーになるのは、
なんか不親切な仕様な気がする。しかも今まで_bkファイルを置いてても正常に動いてたのに、
急にエラーが出始めたから、原因の特定に時間がかかってしまう結果となった。

次回からは変なエラーでハマって時間を取られないように気をつけたいところです。


プログラミングAndroid/オライリージャパン

¥3,570
Amazon.co.jp