Android - R クラスを再生成するには?[重複]
-
19-09-2019 - |
質問
プロジェクトを Eclipse IDE にインポートしましたが、R ファイルが自動的に生成されないため、エラーが発生します。
プロジェクトの要件に一致するように R ファイルを編集するにはどうすればよいですか?
解決 3
わかりました、修正しました:
マニフェストをターゲット 1.5 バージョンに変更すると、100 万件のエラーが表示され、R クラスの存在に関連しないエラーは 1 つだけでした。マニフェスト ファイルの属性「targetSdkVersion」と「maxSdkVersion」が SDK 1.5 には存在しませんでした。
このため、R クラスは生成できませんでした。
他のヒント
で スタックオーバーフローの別の質問, 、誰かがこれに答えました:XML ファイル内の警告とエラー (構文とリンク) を取り除く必要があります。これに加えて、プロジェクトのクリーン/ビルドを実行します。
[プロジェクト] -> [クリーン] をクリックし、プロジェクトをビルドするオプションを選択します。
壊れたレイアウトでこれが発生し、すべてが爆発することに気付きました。リラックスしてください。これは、初めてプログラミングを学んだときの、セミコロンを 1 つ忘れると 100 個のエラーが発生するという昔ながらの間違いに似ています。多くの人はパニックに陥り、すべてのボタンを押して、事態をさらに悪化させます。
解決
- 何もないことを確認してください。
R.
へのリンクは切れていません。壊れている場合、ADK は R を再生成できない可能性があります。 XML ファイル内のすべてのエラーを修正します. - なんとなく何かにぶつかって創作したとしたら
import android.R
あなたの活動の中で、 それを除く. - 走る プロジェクト -> クリーン. 。これにより、R と BuildConfig が削除され、再生成されます。
- 確認する プロジェクト -> 自動的にビルド にチェックが入っています。
- 待って エラーが消えるまで数秒かかります。
- うまくいかない場合は、/gen/ フォルダー内のすべてを削除してください
- それでもうまくいかない場合は、試してください プロジェクトを右クリック -> Android ツール -> プロジェクトのプロパティを修正.
R が再生しない場合の対処方法
これは通常、XML ファイルが壊れている場合に発生します。
- XML ファイル内のエラー (主に /res/ フォルダー内) をチェックします。
- 一般的な場所は /layout/ と /values/ で、特に最近そのうちの 1 つを変更した場合に使用されます。
- AndroidManifest.xml を確認してください。文字列を変更し、AndroidManifest.xml から文字列名を変更するのを忘れていることがよくあります。
- 問題が見つからない場合。 /gen/を右クリック -> ローカル履歴から復元...-> R.java にチェックを入れます -> 復元をクリックします. 。これで問題が解決するわけではありませんが、余分なエラーが削除され、問題が見つけやすくなります。
ここにはすでに多くの回答があることは承知していますが、これは Google の最初のリンクなので、すべてのアドバイスをここにまとめています。これが初めての人に役立つことを願っています :)
いくつかのアイコンとレイアウト ファイルを追加した後、R.java ファイルが再生成されないという同様の問題が発生しました。クリーニングと再構築を試みましたが、元の R.java ファイルが失われ、依然として再生成されなかったため、状況はさらに悪化しました。最終的に、R.java を生成するコンパイラにコンパイラ エラーがあるはずなのに、コンソールにエラーが表示されないことに気づきました。幸いなことに、私は以前に気づいていました
- ある .xml ファイルが存在しない別の .xml ファイルを参照している場合はエラーになります。
- ファイル名に大文字を使用するのはエラーです (なぜ禁止されているのでしょうか。私はキャメルケースが大好きです)。
とにかく、アイコンと .xml ファイルの名前をすべて小文字に変更し、.xml ファイル内のすべての参照を修正すると、ほら、R.java が再生成されました。ちょうどいい気分でランチに立ち寄ったときでした :-)
R ファイルを再度生成するには:
- レイアウト -> activity_main.xml 内の内容を変更します。
- ファイルを保存します
- プロジェクト -> クリーン...
gen ディレクトリにある R ファイルを削除して、「プロジェクト」->「クリーン」を試してください。次に、アプリを再度ビルドします。
を右クリックすることもできます。 project -> Android Tools -> Fix Project Properties
. 。これにより、R.java クラスが再生成されるはずです。
私の問題はManifystファイルにありました。ランチャーアイコンを削除し、Manifyst の新しいアイコンを参照しませんでした:)
Eclipseを再度開き、xmlファイルの1つを編集すると、Activyクラスがパッケージ「R」ではなくandroid.Rを参照していることに気づきました:-)
R.class を再生成するには、複数の手法を試す必要があります。
- Java ソース ファイルから R インポートを削除します。
import R.android
- [ウィンドウ] -> [ビューの表示] -> [問題] に移動して、必ず [問題] パネルを開いてください。
- XML リソースにエラーがある場合は、それらのエラーを修正する必要があります。私の場合、次のように id 属性を変更して「+」記号を含める必要がありました。
android:id="@+id/grp_txt"
- 次に、「プロジェクト」→「クリーン」の順に実行します。
- 最後に、「プロジェクト」→「閉じる」、「プロジェクト」→「開く」を実行します。
「+」記号は新しいリソース ID を示し、aapt ツールが R.java クラスに新しいリソース整数を作成するように強制します。
Intellij IDEA を使用している場合は、[ビルド] - [プロジェクトの再ビルド] をクリックできます。
「プロジェクトクリーン」(これを実行しない)でceclipseで誤ってRを削除した場合、Projectfileを右クリックします - >地元の歴史から復元...
R を再作成する
私の場合:
- XML が壊れると R にバグが発生します。(id の ä、ö、ü の文字のため)
- クリーンプロジェクトが私のRを削除しました。
私がしたこと:
- 地元の歴史から R を再現
- クラス内の間違った R インポート (import android.R など) をチェックし、それらを削除しました
- そのxmlファイルを修正し、その内容を外部txtファイルに保存しました
- XML をプロジェクトから完全に削除しました。
- プロジェクトを一度実行しました
- 修正された XML を元の場所に戻します
そして...
- ハルクのようにパニックになった後、理由もなくガールフレンドに大きなハグをしました。
私の問題は、XML ファイル内のエラーでした。Android 共通 XML エディターまたは Android 共通マニフェスト エディターではエラーが自動的に検出されない場合があるため、代わりに通常のテキスト エディターを使用してみてください。たとえば、何らかの理由で .java ファイルからのランダムな意味不明な内容がマニフェスト ファイルと strings.xml ファイルに挿入されていました。
XMLファイル( /resフォルダーまたはAndroidManifest.xmlで可能性が高い)を右クリックし、[with]をクリックし、[テキストエディター]を選択します。すべてが見栄えが良いことを確認してから、保存してください。また、プロジェクトの「自動ビルド」を必ず有効にしてください。R.java ファイルを削除し、最初から再構築したので、ローカル履歴から復元する必要はありません。
新しい「Android XML ファイル」を、たとえば、 /res/layout
フォルダ。これにより、プラグインが R
クラス。
/res フォルダー内の XML ファイルを変更するだけで、スペースを追加して保存するだけでも再生成されます。
同じ問題がありました - 「R」がありません。そして、ここで与えられたアドバイスはどれも役に立ちませんでした。幸いなことに、私はその理由を見つけました。どういうわけか Eclipse が Project-Properties-target を失ってしまったのです。未設定でした。何が原因だったのかは今のところわかりませんが、元に戻したので役に立ちました。だから、注意してください - R が欠落している場合は、ターゲットが欠落していることを意味する可能性があります, 、 あまりにも!
上記のすべての解決策を試しました。しかし、残念ながら、それは私の問題を解決しませんでした。新しい画像をドローアブル フォルダーに貼り付けるとすぐに R.java が消えてしまいました。この質問に対する回答を読んだ後、私は試してみました 消去 私が持っているアイコン 以前に貼り付けた (ビルドが自動的に有効になっている間)、その後はすべて問題ありませんでした。これが誰かの役に立つことを願っています!
私はその問題を抱えていたので、プロジェクトのパケットとビルドプロジェクトを右クリックしました。即座にクラス R がパケット生成に現れました。
私と同じように、他の誰かがグーグルでこのスレッドを見つけた場合に備えて:
しばらく同じ問題が発生していましたが、少し調べた結果、R.java ファイルは正しく構築されているものの、無視されていることに気付きました。 1つ 私のソースファイルの。この特定のファイルの問題は、Eclipse が先頭に次の行を「うまく」追加したことでした。
import android.R;
これにより、プロジェクト R の内容が事実上隠蔽されます。それを取り除くだけで、すべてが再びうまくいきます...
古い R ファイルが削除されている場合は、Eclipse の「ローカル履歴から復元」を使用して古い R ファイルを復元できます。その後、Eclipse によるファイルのビルドを妨げている原因がわかるかもしれません (問題の解決に実際に役立つ以前とは別のエラーも確認しました)。
プロジェクトのプロパティに移動して Android オプションを選択し、プロジェクトのターゲットを定義できる場合があります。選択したターゲット API をこのプロジェクトに適用すると、R.java が自動的に生成されます。
ほとんどの場合、無効なレイアウト ファイルに関する問題が発生します。「問題」ビューを開いて、XML レイアウト ファイル内のエラーを探します。それらを修正すると、R クラスが再作成されます。
私の場合、実際のエラーはありませんでした。問題ビューには、XML レイアウトのエラーが表示されました。エディターには XML エラーも表示されました。「ctrl-f」を使用して自動フォーマッタを使用して XML を再フォーマットするだけで、XML の「エラー」が「修正」され、R クラスが再作成されました。
プロジェクトから R.java ファイルを削除するだけで、ビルドが自動的に有効になっていると仮定してファイルが再生成されます。ビルドが自動的に有効になっていない場合は、「プロジェクト」->「すべてビルド」に移動してください。
私にとって、それは String 値のリソースが定義されていないということでした。これを Strings.xml に手動で追加した後、R クラスが自動的に再生成されました。
この問題は通常、既存のプロジェクトからインポートするときに発生します。すべてのエラーをすべて修正してみてください .xml 内のファイル レス フォルダー、および マニフェスト ファイル。おそらくエラーは「」に表示されます。match_parent" パラメータを " に変更しますfill_parent」。すべてのエラーが解消されると、R.java が表示されます。
どの .xml ファイルにもエラーがない場合。XML ファイルを編集して (文字を削除して再度入力するなど)、ファイルを保存してみてください。これにより、R.java が生成されます。
という問題があります。 findViewById(R.id.edit_text)
ただし、EditText ではなく TextView を返します。問題は、R.id クラスの ID 番号が間違っていることだと思います。その後、プロジェクトをクリーンアップすると、正常に動作します。
私の場合、R ファイルが再構築されない原因となったのは、不適切な名前の XML ファイルでした。これはパッケージ エクスプローラーには表示されませんでしたが、LogCat には表示されました。res ファイルに関する警告に注意してください。プロジェクトを何度クリーンアップしても、それらのエラーが解決されるまで R ファイルは再構築されません。