rを変数に解決できません(´・ω・`)


何もやってないのにエントリ名のエラーが出た(´・ω・`) ←ゼッタイウソ ナンカヤッテル

アクションバーのセットアップをチェックする為にサポートライブラリを入れて
ちょこっと設定を変えたりしたけど、それ以外は何もやってないのに
“rを変数に解決できません”というエラーが発生した。
これはバグですか(・∀・)? ←ヤッパリナンカヤッテタ

発生した原因も解決した理由もわからないが一応エラーが消えるまで流れ。
なんか大昔にもR.javaではまっていたような気がする…


R.java

そもそもR.javaってなんだべ(´・ω・`)?
おかゆライスが好きで下駄履きで自転車に乗るアンドロイドかというと
そういうことでもないらしい。 ヤッテクルヨ~ゴ~テンゴ~(・∀・)♪

SDKによって自動生成される、リソースへ与えられたリソースIDを
まとめて保持するjavaのソースファイルということらしい。

中身を見てみると

public static final class string {
    public static final int action_settings=0x7f050001;
    public static final int app_name=0x7f050000;
    public static final int hello_world=0x7f050002;
}

みたいな感じで各リソースカテゴリを表す内部クラスを持ち、
その中にリソースIDをint型の静的変数として保持しているみたい。

各リソースの設定を行うxmlファイルからの自動生成だから
手動では変更を加えてはいけないらしい。

ResourceだからR.javaで、自動生成ファイル(Auto generated file)が格納されるから
genフォルダというストレートな命名と考えても良いのだろうか( ・´ω・`)? ドウデモエエガナ


R.javaが生成されない原因

さて、このR.javaが自動生成されないのは何故か。
早速ぐぐった。主な原因は

  1. リソース設定用の各xmlファイル内でスペルミス等の間違いがある。
  2. コンパイラ準拠レベルが”1.6″ではなく”1.7″になっている。
  3. Androoid SDKが最新ではない(SDK buildツールがインストールされていない?)。

俺氏の環境だと新規作成したAndroidプロジェクトの段階で既にR.javaが
生成されていないので一番目はおそらく関係ない。

じゃあ二番かと思って準拠レベルが”1.7″かと思って見てみたらそんなこともなく…(´・ω・`)
compiler

コンパイラ準拠はともかくJDK1.7がなかったのでついでに落としてきて検出させ、
一回JRE環境として設定した後でまた6に設定し直した。これは自動生成とは
関係ないから当然のことながら状況は変わらず。

ちなみにJRE環境で指定したバージョンがコンパイラ準拠の値より大きいと
以下のようなメッセージが表示される。これも一致させないと駄目なのか。
compiler_caution

三番目のSDKかと思い、Android SDKマネージャを起動する。
SDKツールとしては最新版のようであったが、SDK buildツールは入ってなかった(ノ∀`)
「これや(`・ω・´)」と思いインストールを始める。
sdk_build_tools

だがしかしeclipseがインストール途中(ダウンロード途中?)で応答なしに…_| ̄|○
タスクを終了してeclipseを再起動して再インストールをする。どうもネット環境が悪かったのか
同時にプログラムを起動し過ぎていた所為か、更にもう一度インストールに失敗したような?
とにかく三度目くらいにインストールに成功。

「これで勝つる(`・ω・´)」と思ったのだけれども状況は変わらなかった …(ヽ’ω`)

[更新の確認]をしてねと言われたのでしたけどやはり状況は変わらず。
update_caution
checkforupdates


万事休す ∩(´・ω・`)∩ o・te・a・ge

さっぱり解決法がわからないので、手当たり次第に考えられる方法を試す。

  • プロジェクトをクリーンして再ビルドする。
  • eclipseを再起動する。
  • windowsを再起動する。←多分これは関係ないw

clean
clean2
だがしかし依然として状況は変わらず… (ヽ’ω`)

こうなってくると打つ手がないので、eclipseを再構築するしかない。
ということでpleiades all in oneをもう一度ダウンロードしてくる。
700MBもあるので暇になる(´・ω・`)

どうせ再構築するから古いのはどうなってもいいかと適当に
SDKビルドツールを一旦削除して再インストールしてみる。
やっぱり状況は変わらない…ダウンロードもまだまだ終わらない(´・ω・`)

どうせこんなの関係ないよねとコンパイラ準拠を一旦”1.7″にする。
面倒くさいので再ビルドはしなかった。そして”1.6″に戻して
再ビルドするにして放置した。


よくわからないけど解決∩( ・ω・)∩ Ba・n・za・i

しばらく経ってから見てみたら再ビルドが終了していた。
eclipseを再起動した。R.javaのエラーがなくなっていた(・∀・)
普通に実行出来るようになった。
success

ダウンロードフォルダに新しいpleiades All in oneが残った。

                       おしまい(・∀・)
 
 
 
 
 
  
 
 
 
 
 


Rの下の赤い波線再び( ;・´ω・`)ゴクリッ

全てが解決したと思い安心したのも束の間、新規に作成したAndroidプロジェクトで
Rの下に赤い波線が再び表示された…_| ̄|○

しかもこのエラーについての説明はない。なんぞこれ(´・ω・`)
実行するまでは説明ってつかないんだっけ?
r_error01 

ここで実行をすると
r_error02
というエラーが発生する。

“AndroidManifest.xml file missing!”というエラーでぐぐると、
色んな理由があるみたいでよくわからない(´・ω・`)

まあ何にしてもエラーダイアログを閉じた後に再実行したり、
プロジェクトをクリーンして再ビルドすると赤い波線は消える…

わけがわからないよ(´・ω・`)


とまあ非常にわけがわからないままに解決してしまったので何ともスッキリしない。
環境が不安定だったからeclipseの設定が上手く変更されていなかったとかあるのだろうか。

或いはうちのはeclipse内の設定等がぐちゃぐちゃになってしまっているのか、
サポートライブラリがきちんと設定出来てないのかな…
再構築した方が良いのか (ヽ’ω`)

上記に挙げた以外にも

  • Android.Rをインポートしてしまっている。
  • ソースファイルやリソースファイルの場所が同一パス(同一ドライブ?)に存在しない。

みたいな理由でもエラーになるらしい。

上の場合はandroid.Rのインポート文を除去すればいいようだ。
remove_import02

何もしてないのに”activity_main は解決できないか、フィールドではありません”みたいな
エラーが出ている場合はおそらくこのAndroid.Rをインポートしている所為だと思う。
remove_import01

下の場合は正しいパッケージパスを指定すればいいらしいが…
何にしても色々と面倒なエラーだ(´・ω・`)

関係ないけどサポートライブラリv13ってなんだ…