Make Healthy Life

最近はSQLばっかり書いてるWebエンジニアの日記です。

r cannot be resolved to a variableの解決方法まとめ

もともとWindows PC でAndroid開発をしてた
macbook pro Retinaモデルを購入したので、Android開発環境をmacにもインストールした。
何事もなく終わるだろうと高をくくっていたら・・・
windows PCのほうで開発したプロジェクトをインポートしたら『r cannot be resolved to a variable』というエラーが出てしまい、R.javaが自動生成されなくなった。

わかってしまえばどうということはない原因だったのですが、かなりはまってしまったのでまとめておきます。

「r cannot be resolved to a variable」エラーの原因

xmlファイルのエラー

この問題を検索すると、一番最初に引っかかるのがxmlファイルのエラー。
xmlファイルにエラーがあると、R.javaが自動生成されず、エラーとなるとのことです。

私の場合はWindows PC で実績のあるコードであることと、新規に作成したサンプルプロジェクトでも同様のエラーが発生するため、これは原因ではないと判断した。

・単にClean、Rebuildがなされていない

これもいろんな人が、「とりあえずやっとけ」って感じでお勧めしてた。
当然全く効果はなかった。。。
EclipseのClean起動も試したけど、意味なかったです。

・インポート時にimport android.R; が追記されている

インポート時にEclipseの機能が働いて、「import android.R;」が追記されてしまうことがあるらしい。とゆーかありました。
Web上ではこれを発見した人が賞賛されてて、私も「原因はこれか!?」と興奮しましたが、やっぱり違いました。
でもこれが原因だった人は感激したでしょうね。

EclipseのインストールフォルダのPathに日本語が入っている

私はEclipseを/Users/username/開発/eclipse 以下に置いていた。
このうち、開発フォルダが日本語であることが良くなかった。
「開発」➡「develop」に変更したところ、エラーは消え、R.javaが自動生成されました。


わかってしまえば基本中の基本なので、悩んでた自分がバカらしくなってしまった。
とにかくmacandroid開発ができるようになってよかった。

でもこうなるといつwindowsPC使おうか悩むなぁw

はてなダイアリー、初めまして

俺の勉強日記をつけていきます。

まえはアメブロに書いてました。
でもはてなのほうがデザインがいいですね。シンプルな方が好きです。

しばらくは洋書の解説をしようかなと思います。

あとはこの前完成したAndroidアプリとか。
さっそくバグが見つかって非公開にしましたが。
バグ取りしなきゃ。