2013-06-14 12 views
10

私はAndroidスタジオでプロジェクトを開いていました。それはウィザードによって生成され、正常に動作します。Androidスタジオが突然シンボルを解決できないR

私はactivity_main.xmlに若干の変更を加えました。私がMainActivity.javaに戻ったとき、私はいくつかの場所でRを解決できないというエラーを受け取りました。これを引き起こす可能性があります。しかし、私はxmlを編集したときに何が付いていたのか分かりません。

これに対する解決策を知っている人はいますか? 私はr/release/packege/com /にあるR.javaを見つけることができます。

+1

あなたのプロジェクトを修復しようとしましたか? – Anila

+4

これは、XMLファイル内のエラーが原因で発生します。ちょうどあなたが変えたものを見てみましょう。しかし時には、それはちょうど「きれいな」ことをやっているケースです。私は両方のインスタンスを自分で持っていました。 – LokiSinclair

+0

ありがとうございます。私は両方をしました。私は自分のXMLに小さなエラーがあり、私もプロジェクトを再構築しました。今それは動作します。奇妙なことに、ideはまだ何かが間違っていると警告しています。 –

答えて

30

ほとんどの場合、それは悪いXMLファイルが原因です。 XMLファイルは、レイアウトファイル、値ファイル、またはマニフェストファイルです。 xmlファイルを確認して、プロジェクトを再構築してみてください。場合によっては、プロジェクトを修復して再構築することもできます。

+0

また、フォルダが重複していないことを確認してください。特に '/ res'ディレクトリにあります。 – Wenger

+1

私は、これが私の質問の時点で問題の理由であることを完全には確信していません。しかし、これが私の経験では、ASとEclipseの両方にとって最も一般的な理由であり、Rを解決するのに問題があるため、これを適切な答えと考えています。 –

+0

これは私にたくさん起こった。通常、XMLのコメントではエスケープされていない文字です。 Android Studioでは、以前のすべてのXML変更を組み合わせる必要はなく、問題を解決することを願っています。 – codingjeremy

1

は、以下のようにして、プロジェクトをきれいにしてください:

Windowsを使用している場合は、オープンCMDcdプロジェクトディレクトリにとgradlew cleanを実行します。

+0

これはおそらく良い提案です。元の問題は、事前のグラデルプロジェクトで発生したので、その時点での解決策ではありませんでした。おそらくAptanaのインストールのために、現在のEclipseワークスペースに何らかのエラーがあるように見えました。プロジェクトを別のワークスペースに移動すると、問題は解決しませんでした。 –

0

私はこの問題を持っていた理由は、レイアウトアンドロイドスタジオを編集した後、自動的にソースファイルにインポートを追加したことだった。もちろん

import android.R 

をメインRクラスは、あなたのレイアウトですべてのシンボルをしていませんそれはすべてを赤い混乱にしました。 その行を削除すると解決されます。

編集: 日食のように見えますが、早ければthe same problemがありました。

3

また、無効な名前のドロアブルがないことを確認してください。私は数値ファイル名でドロアブルを持っていましたが、それはAndroidでうまく座りませんでしたので、R.javaをコンパイルできませんでした。

+0

これは本当に良いアドバイスです。私が持っていた問題ではありません。 –

1

私も同じ問題が起きました(最近、私は昼食を取っていましたが、戻ってきて、WTF?)。これは単純なHello、Worldプログラムなので、これらのエラーが隠れる可能性のある場所はあまりありませんでした。 XMLファイルはうまく見えました - 私はマニフェストに触れていませんでした。清掃は何もしなかった。

私はlayout.xmlのセクションをコメントアウトして、問題の絞り込みを試みました。確かに、エラーは消え去った。

そして、私は単に私がコメントしたものをコメントアウトしていませんでした...そしてすべては大変なものでした。奇妙な!おそらく、レイアウトファイルの再構築を引き起こすために触れなければならなかったいくつかの長引く問題があったでしょう。今日のような基本的なことは起こらないだろうと思っていますが、彼らはそうしています。

もう1つ! Javaにも何かが起こる可能性があります。 Javaランタイム環境の状態を知ることは非常に難しいです。もう一度やり直すほうが簡単です。もう一度試してみてください。コンピュータを再起動し、Android Studioを再起動してから、キャッシュを無効にして再起動してください。うん、全豚。

+2

補足として、誤って入力中にコントロールキーを押すと、コードに隠れたコントロール文字を簡単に挿入できる、プログラミングの昔を覚えています。あなたはこれらの文字を見ることができませんでしたが、コンパイラは確かに可能性があります! 80年代の多くのプログラマーは、長い間これらのバグを探し回っていました。おそらくこのような何かがEclipseで時々ポップアップするでしょうか?コメントはありますか? –

1

Androidスタジオをアップデートした後に時々これが表示されます。必ずしもすぐにではなく、しばらくして(おそらくプログラムの再起動後に)。

これは私にとってはうまくいきました:ツール - Android - Gradleファイルを使ったプロジェクトの同期。

何らかの理由で、build.gradleファイルを変更した後に表示される[今すぐ同期]リンクをクリックしても、何も変更されていません。メッセージにはほぼ同じことが書かれていますが。

1

私のstrings.xmlには、アポストロフィをエスケープするのを忘れてしまったので、同じ問題がありました。 xmlファイルで "\ '" never "'"を使用してください!

3

AndroidManifest.xmlにパッケージ名が正しいことを確認してください。私のR.whateverが赤色にマークされたとき、それは私の問題を解決しました!

+0

私のために非常に大きなDUHの瞬間。私はまた、従来のファイルパスがあったので、スタジオを再起動しなければなりませんでした。 – TheRealJAG

0

他のすべてが再起動に失敗すると、アンドロイドが役立つことがあります。起動時にファイルが新たに読み込まれ、これが検出されます。

0

この問題は、の名前を変更したときに発生します。 パッケージ名の変更後、より古いパッケージ の名前を,に変更する必要があります。 私はそれを変更した後、問題を解決しました。 その後、xmlファイルにエラーが発生する可能性があります。その場合は、パッケージ名も に変更する必要があります。 それだけです。

0

私はちょうどRの問題を抱えていましたが、数時間後に問題が私のxmlファイルの1つで使用されていた地域スペルであることがわかりました。問題の言葉は、アメリカ人が綴った行動であった行動であった。 私はオーストラリア人です。私たちはあなたに古風な言葉のスペルを教えているので、ペニーが落ちる前に何度もそれを見ました。 それは小さなものですが、それは簡単にこっそりと地獄の領域であなたをかむことができます、見つけるのは難しいと多くの時間を無駄にすることができます。

0

私のケースでは、私はいくつかの新しい画像ファイルをドロウアブルフォルダに追加してしまい、誤ってPNGでそこにGIFを挿入してしまいました。私はそれらをまだプロジェクトに組み込んでいませんでした。私はGIFを削除してから、きれいにして再構築しました。それは私のためにそれを固定した。

0

UDACITYサンプルプログラムをインポートするときに、この問題が発生しました。 Android Studioのメッセージペインでは、エラーがプロジェクトファイルの深いサブディレクトリに.PNGをロードできなかったという。

すべてのサブディレクトリのパス名がWindows 7で定義されている名前の長さの制限(260文字)を超えているため、PNGが表示されません。私はプロジェクトに短い名前をつけました。スペースを解放するために、アンドロイドスタジオは楽しく編集しました。

関連する問題