私のR.Javaは決して更新されないので、新しいリソースに関する情報が含まれていないので、削除することにしました。Eclipseは新しいリソースを生成すると考えました。しかし、それは起こりませんでした、そして今私はR.Javaを持っていません。どうやって再生成できますか?
私はWindows 7を使っています。
コメントの1つから: "Doing Project - > Clean は私にとって問題を引き起こしたものです。クリーニングはR.Javaを削除します...そして何らかの理由でプラグインがファイルを再生成していません。"
私はこれが壊れたレイアウトで起こっていることに気付きました、そしてすべてが爆破します。リラックスしてください、あなたが最初に1つのセミコロンを忘れて、それが百のエラーを発生させるプログラミングCを初めて学んだとき、それはその古い間違いのようです。多くのパニックは、すべてのボタンを押して、物事を悪化させます。
R.
がリンクしているものが壊れていないことを確認してください。 XMLファイルのすべてのエラーを修正してください 。 ADK内の何かが壊れている場合、R
は再生成されません。import Android.R
を作成した場合、 それを削除してください 。Menu -> Project -> Build Project
を使って手動でビルドしてください。これは通常、壊れたXMLファイルがあるときに起こります。
/res/
フォルダー内のエラーを確認してください。/layout/
と/values/
です。AndroidManifest.xml
を確認してください。私は文字列を変更することがよくあり、文字列名をAndroidManifest.xml
から変更するのを忘れています。Android SDK Build-tools
がインストールされていることを確認してください。 ウィンドウ - > Android SDK Manager - >ツール - > Android SDK Build-tools Android SDK Tools
を更新するときは、必ずAndroid SDK Platform-tools
とAndroid ADK Build-tools
も更新してください。一致しない場合、ビルドは黙って失敗します。私は同じ問題を抱えていました。チェックアウトしたところ、レイアウト中のXMLリソースの名前が正しい命名規則を持っていないことがわかりました。大文字がいくつかありました。だから私はすべての文字を小文字にするためにそれを改名し、そして魔法は働いた。
R.classが突然行方不明になる理由の1つは、XMLファイルにエラーがある場合です。たとえば、myCoolLayout.xmlのように大文字のXMLファイルを追加すると、許可されません。または、既存のファイルなどを参照していない参照がある場合.
Eclipseでは、単にプロジェクト - >クリーンを使用してプロジェクトをクリーンにします。 R.Javaは自動的に(再)作成される予定です。
何らかの理由で動作しない場合: あなたのlayout.xmlファイルがエラーを含んでいないことを確認してください。 Eclipseは、ここでは少しバグがあるように思われます。XMLやパッケージエクスプローラー内のエラーを示していないこともあります。そのような場合: "clean"を使用した後に "console"または "問題"ビューを見てください。すべてのエラーはそこに表示されるはずです。それらを修正して、きれいにやり直してください。
注:Rファイルがないために発生したエラーを修正する必要はありません。 XMLファイルやその他のプロジェクトエラーを修正してcleanを使用するだけです。
マニフェストのパッケージ名は/src
フォルダのパッケージ名と同じである必要があります、/gen
フォルダパッケージは自動的に再現されます。
/gen
フォルダー内のパッケージの名前を確認してください。私の場合は/src
フォルダのものとは違いました。
マニフェストで参照されているパッケージは/gen
フォルダのパッケージでした。
/src
フォルダーの名前のパッケージを/gen
フォルダーに追加しようとしたところ、何が起きるのか確認できましたが、これで問題は解決しませんでした。その後、/src
フォルダのパッケージ名と同じではないパッケージ名を削除しました。 /src
フォルダに対応しない名前のこのパッケージは、削除するとすぐに再作成されました。
マニフェスト内のパッケージ参照は、無意味に再作成されていて、/src
フォルダー内のパッケージとは対応していないものに対応していたため、package = "oldPackage"
の名前をpackage = "srcFolderPackage"
に変更するよう求められました。
私は同じ問題を抱えていました、そして私はついに問題を見つけました:strings.xmlで、私は新しいAndroidプロジェクトを作成するときデフォルトで存在する行<string name="app_name">program-name</string>
を保ちませんでした。私はそれが元のプログラムであるプログラムHelloWordだけに使われていると思った。
ただし、AndroidManifest.xmlはこの値を参照するため、次のようになります。
=>コンパイルエラー。
=> R.Javaは更新されていません。
=> IDが認識されません...
AndroidはSDKビルドツールADT 22にビルドメカニズムを追加しました。あなただけの次の手順を実行する必要があります。
これで問題は解決します。
R.Javaが生成されない場合の解決策の1つは、 "blabla.out.xml"という名前のレイアウトファイルを削除することです。
このファイルを削除した後、メニューからプロジェクトを削除してみてください Project - > Clean 。
Glauxの答えを一般化したものとして、res
ディレクトリに any エラーがあると、クリーンアップして再構築してもR.Javaが生成されないことがあります。最初にそれらのエラーを解決してください。
例として、「myimage-2.jpg」などの画像ファイルを追加すると、ファイル名は英数字の値に制限されるため、システムはこれをエラーと見なします。ファイルを追加した後に 'res'ディレクトリを更新し、コンソールウィンドウの出力でファイル名の警告を確認します。
あなたは100%XMLファイルにエラーがあります しかし、XML検証はあなたにエラーを示していません。これが、XMLファイルを最初に確認する必要がある理由です。
あなたのOSがUbuntuの場合、私はいくつかの提案をすることができます:
Ia32-libをインストールまたはアップグレードします。
Sudo apt-get upgrade ia32-libs
Aaptフォルダに適切な権限があるか確認してください。
cd Android/adt-bundle-linux-x86_64-20130522/sdk/build-tools/Android-4.2.2
chmod 777 aapt
Eclipseを起動します。
Sudo Eclipse
プロジェクトを実行 - > Eclipseでクリーン
Eclipseの 問題 タブをご覧になることをお勧めします。私の場合、R.Javaが生成されないようにする「 Androidがターゲットの「Android-8」を解決できません 」というエラーメッセージが表示されました。そこで、インポートした target を default.properties ファイルで使用していたものに修正してから、Projects-> Cleanを使用してクリーンアップを実行しました。 R.Javaは自動的に生成されます。それが役に立てば幸い!
インポートしていないことを確認してください
Android.R;
res
フォルダーに大文字が含まれているanyファイルでこのエラーが発生することがわかりました。これは私が追加し忘れた _ png _ ファイルで私に起こりました。
プロジェクトのクリーニング、Eclipseのクローズ、プロジェクトの再起動、そしてプロジェクトの起動により、ついにR.Javaが再現されました。
res
フォルダーにエラーがあるとR.Javaは生成されません。たとえば、drawableサブフォルダには、同じ名前の2つのファイルがあります。1つはicon.png、もう1つはicon.htmlです。
Eclipseのコンソールログウィンドウに、「リソースエントリアイコンはすでに定義されています」というエラーが表示されることがあります。 icon.htmlを削除した後、あなたはgen
フォルダをきれいにするか単に削除することができます。 R.Javaが作成されたことがわかります。
私にとっては、v7 appcompatを2回リンクしました。とにかく、Eclipseでは、パッケージ・エクスプローラーまたはナビゲーターでプロジェクト名を右クリックし、「プロパティー」、「Android」に移動して、「ライブラリー」セクションの重複部分のチェックを外します。あとでBuild - > Cleanをする必要があるかもしれません。
多くの投稿やYouTubeのビデオを読んだ後、私たち一人ひとりがさまざまな理由でR.Java
を見逃していることがわかりました。
Eclipseでこれを修正する方法は次のとおりです。
gen
フォルダー 手動 にR.Javaを作成して保存します。次のメッセージが表示され、ファイルは自動的に書き換えられます。
R.Javaは手動で修正されました!生成バージョンに戻ります。
私はこの問題を抱えていました。誤って削除しました
xmlns:tools="http://schemas.Android.com/tools"
これは私のXMLファイルと私のJavaファイルの中で、プロジェクト全体にわたってビルドエラーを引き起こし始めました。削除したものを再入力するとすぐにうまくいきました:)
それで、この問題には多くの原因が考えられます。 64ビットのLinuxマシンを使っていて、初めてADTを設定するだけの場合は、Rが自動的に生成されないというこの問題が発生するかもしれません。コンソールタブを確認すると、次のようなエラーが表示される場合があります。
'No such file or directory' while attempting to get adb version from '/home/patrick/code/Android-sdks/platform-tools/adb'
その場合は、ia32-libsをインストールする必要があります。
Sudo apt-get install ia32-libs
詳細はこちらをご覧ください: Android adbが見つかりません
これに対する最終的な答えは明らかにありませんが、ここではまだ見ていない別のものがあります。
Team Synchronizeを実行しようとした後にR.Java
が消え、プロジェクトに競合解決ファイルがありました(つまり、thingy.xml.mine
、thingy.xml.r35
など)。それらを削除すること/衝突を解決することはR
を再生成しました。
私はこの問題に何度か遭遇しました。たとえば、自分のアプリケーションの名前でパッケージRをインポートしなかった場合、たとえば、自分のアプリケーションのパッケージ名がexample.testの場合、example.test.Rをインポートする必要があることがわかりました。リソース.
これがインポートされなかった場合は、返される場所がデフォルトリソースであり、私自身のリソースは含まれていません。
デフォルトのリソースのリストしか取得できないことがわかった場合は、Android.Rではなくapplication_package_name.Rをインポートしていることを確認してください。
私の問題はappcompat
が私のプロジェクトと同じディレクトリにないということでした。
Ant で私のアプリをコンパイルしたとき、私はこれを見つけました。
すべてが正しいと思っていても何も正しく動作しないように思われる場合は、XMLファイルを1つずつ確認してください。間違いは100%あります。
XMLファイルのGUIを使って作業すればすべて問題ないようですが、テキスト形式のXMLファイルを入力すると、内部に混乱が生じます。 Eclipseはこの点に関して少しバグがあります。
BuildAutomaticallyも設定してください。エラーを修正した後は、R.Javaファイルが生成されたファイルに含まれることになります。
私の場合は、res/
フォルダーに同じ名前のXMLファイルがあるため(たとえば、res/layout/filename.xml
とres/values/filename.xml
)、Rファイルは生成されませんでした。
ファイル名の1つを変更した後、私のRファイルは Build Automatically オプションによって再び生成されました。
私は自分のレイアウトXMLファイル名を変更し、後でXMLファイル(この場合はウィジェットプロバイダ)の名前がまだ存在しない古いレイアウトXMLを参照していることを発見しました。
あなたがMavenを使用するならば、これらの答えのすべてはうまくいくことができませんでした。私にとっての解決策は追加することでした
<genDirectory>${project.basedir}/gen</genDirectory>
android-maven-pluginの設定セクションへ。
私にとっては、このエラーはwizard
で作成する代わりに既存のres/menu
を複製しようとしたときに発生しました。
私は糞_爺の答えを強調したい。
色を "listcolor"から "color_list"に変更しましたが、他のレイアウトの1つがそれを参照していることに気付きませんでした。だから(突然)私のR.string.XとR.layout.Xはすべて 'R'で失敗した。
最終的に、私はコンソールウィンドウを調べてエラーを調べました。私はそれらがすべてRを参照しているのではないと思いましたが、実際には 'listcolor'が見つからなかったということです。私がそれを直すとすぐに、他のエラーはすべて消えました。
Eclipse のプラグインの将来のバージョンでは、これらのXMLファイル内のリソースの名前を変更してそれをすべての参照に伝播させることができます。
私にとって、問題は私のresフォルダに大文字のイメージ、つまりImage.pngがあることです。 image.pngを入れるだけです。
LowerCaseへのすべてそしてそれはそれです!
私は同じ問題を抱えていました。循環参照がありました。レイアウトで参照されている文字列の名前を変更しました。
私はきれいにして再構築し、R.Javaファイルは再作成されていませんでした。何が悪いのかを突き止めようとして2時間無駄にしました。私は最終的にレイアウト項目を一時的なテキストに変更し、きれいなプロジェクトを行い、R.Javaファイルが作成されました。
また、ADTプラグインの最新バージョンがあることを確認し、Android SDKマネージャを開いてすべてのSDKツールを最新バージョンに更新します。 Eclipse自体のアップデートもチェックしてください。一致しないバージョンは私にとって問題を引き起こしました。
この問題は私と同様に思いつきました、そして残念ながらここで提案のどれも私を助けませんでした。多くのことを試した後、私はようやく何が起こったのかを知り、それが他の人に役立つことを願っています。
昨日、私はAndroid SDK Managerを使ってたくさんの新しいものをダウンロードしました。その後、私はAndroid Eclipseプラグインを更新しました。今日、Eclipseが "クリーン"になった後、Rファイルは消えて生成されなくなりました。
その理由は、どういうわけか、(preferences-> Androidの下で)利用可能なSDKのリストが空だったからです。正しいディレクトリを再度ポイントした後、リロードして利用可能なSDKを表示しました。私が設定を閉じて別のビルドを試みると、すべて正常に戻りました。
添付の画像では、すでに埋められているSDKのリストを見ることができます。問題が起きている間は、それは空でした。
これが他の人に役立つことを願っています!
私の問題はメニューファイルの中にありました。 strings.xml
内に存在しない文字列がメニューファイルで参照されている場合、コンパイラは警告しません。メニューのXMLファイル内のitem
が、strings.xml
に存在しない文字列を参照しているかどうかを確認します。通常Android:title
です。
私はそれを作り直した後にR.classがEclipseによって作られない理由を解決しました。
問題はstrings.xmlにあります。
<string name="hello">Hello World, HelloAutoComplete!</string>
<string name="app_name">HelloAutoComplete</string>
これらはデフォルトではプロジェクトを作成するときにEclipseによって作成されます。
確かにあなたはあなた自身の必要条件のためにstrings.xmlを変えています。コードからこれら2行のstring.xmlをクリアすることがあります。
AndroidManifest.xmlファイルに問題があります。
<application Android:icon="@drawable/icon" Android:label="@string/app_name">
<activity Android:name=".HelloAutoComplete" Android:label="@string/app_name">
そのため、strings.xmlと通信できません。
この問題は、SDKのソースコードからSupport4Demosをビルドしようとしたときにも起こりました。
リソースファイルのいくつかの問題を修正した後(たとえば、 "fill_parent"が "match_parent"に名前変更された)、問題がマニフェストファイルにあることを発見しました。 AndroidManifest.xmlのチェックボックスをオンにして変更を保存するとR.Javaが魔法のように再現されました。それから私はボックスを再チェックし、ファイルを保存し、そしてR.Javaは再び再生されました。
Eclipseの欠点に遭遇したと思います。
宣言スタイルタグにname属性を設定するのを忘れました
<declare-styleable>
<attr name="myView" format="reference"></attr>
</declare-styleable>
私はそれを修正しました
<declare-styleable name="Theme">
<attr name="myView" format="reference"></attr>
</declare-styleable>
エラーがなかった
strings.xml
からこれら2行を削除しないでください。
Android:icon="@drawable/icon" Android:label="@string/app_name"
Android:name=".HelloAutoComplete"
Android:label="@string/app_name"
ファイルproject.propertiesを変更して問題を解決します。Android-17のターゲットを追加します。
私に起こったもう一つの状況もあります。 strings.xmlリソースファイルに アポストロフィ の文字列を追加したときです。
<string name="Today">Returns Today’s date</string>
´
のように、アポストロフィを別の種類のアポストロフィに変更することで修正されました。
まず最初に、コンソールの出力を確認してください。
次に、xmlレイアウトファイルの名前が小文字のみであるかどうかを確認します。
xmlエラーを修正してください。
プロジェクトのプロパティ - > Androidで不慣れなものをチェック
ほとんど確実に、genfileに挿入される内容に問題があります。 Eclipseは、問題が何であるかを示したり、問題があることを示したりするほど賢くはありません。
XMLまたは画像のコンテンツに対して最後に行った編集について考えてみてください。必要に応じて、手動で変更を「ロールバック」してください。
私は、Eclipseが何らかの理由で私のファイル名を好まないことがあるので、それらを変更しなければなりません。
そのため、リソースが1つずつ追加され、すべてが「機能」していることを確認してください。何かが壊れたときは、Eclipseがそれを受け入れるまで少しだけ変更してみてください。
Genfileが表示されたときに動作していることがわかっています - 問題がなければ自動的に動作します。
main.xml
のbutton
テキスト属性にハードコードされたテキストを使用していた エラーなし but 3回の警告 このようなもの:
<Button
Android:id="@+id/scan"
.....
Android:text="Scan" />
text
属性をAndroid:text="@string/scan_device"
に変更した後、すぐにR.Javaが生成されました。
そのため、 _ xml _ ファイルのいずれかにエラー/警告がある場合は常に私のマシン/ Eclipseで発生します。
IntelliJ IDEAこの問題は warnings では発生しません。
前の30の答えのどれも助けなかったあと、これが私が見つけたもう一つの答えです。
私はstrings.xmlファイルで私の問題を発見しました、それは非常に非常に奇妙ですが。私は自分のアプリを必要最低限のものにしましたが、これが唯一明らかになったことです。私は真新しい空のアプリにそれを複製することさえできます。
Strings.xmlファイルでは、これによりコンパイルされます(そしてR.Javaファイルが生成されます)。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Test_My_App</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>
しかし、これはそうではありません。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_world">Hello world</string>
<string name="app_name">My_App</string>
<string name="action_refresh">Refresh</string>
</resources>
「面白い」というのは、数日前にaction_settingsを削除したことです。それ以来、私は自分のコードをきれいにしましたが、何の問題もありませんでした。今日、strings.xmlファイルに追加の文字列を追加しました。コードをクリーニングした後、ホイールが外れました。また、同じ3つの文字列行の順序を並べ替えてコードを消去しても、R.Javaファイルは再生成されません。
私の特定の問題に対する私の解決策があります。
誰かに役立つことを願っています...
R.Javaファイルは主に.xmlファイルとJavaと関連があります。私たちはXMLタグを知っていますが、Javaについてはどうでしょうので、そのためにはタグを識別するための一意のIDが必要です。
ここでR.Javaファイルは主にJavaで値を取得するためのXMLファイルに関連しています。
私の場合、以前のすべての解決策をチェックしましたが、Rを生成しませんでした。メニューフォルダーからmain.xmlファイルを削除して、もう一度再生成しました。理由はわかりませんが、現在は正常に機能しています...
AndroidManifest.xmlファイルに問題があり、R.Javaが生成されませんでした。
解決策は、すべてのXMLファイルをどこでも確認することです。
それらのどれかに問題がある場合、EclipseはRクラスの構築に失敗するかもしれません。
project.properties
ファイルを確認してください。ビルドパス内のAndroid JARファイルが、あそこに記載されているバージョンと一致しない場合があります。
目標を変更したので、問題は解決しました。
私は同じ問題を抱えていました。
Lint警告をチェックした後 警告The resource R.string.app_name appears to be unused
...が表示されたので、R.string.app_name
を削除しました。
Lintが未使用のリソースについて私に警告しましたが、このリソースはAndroidManifest.xml
に必要です。マニフェストに「未使用のリソース」を追加したところ、すべて正常に戻りました。
これが誰かに役立つことを願っています。
AndroidManifest.xmlファイルにエラーがあったので、そのエラーを修正してヒットした後
実行 - >クリーン
それは私を生み出しますR.Java
もう1つ試すことができます。
C:\Program Files (x86)\Android\android-sdk\tools>
に行き、adb kill-server
を実行してからadb start-server
を実行してください。これは私のために働きました、そして、私は理由がわかりません:-)。
私は同じ問題を抱えていました。その理由は、私のリソースのいくつかのファイル名に大文字が含まれていたためです。私はそれが些細に聞こえることを知っていますが、ただそれらをすべての小さい文字に変更してそれを修正し、私のR.Javaファイルを再び取得しました。
それが役立つことを願っています。
他のファイルと同じ名前のscale9のドロウアブルがあると、これも起こります。
どちらか一方のファイルを削除するだけで問題は解決します。
ここにあるすべての答えがXMLのエラーをチェックし、プロジェクトをきれいにすることを繰り返し続けるように思えます。やれ!しかし、それがうまくいかない場合はどうなりますか?これは私のために働いたものです:
間違ったRを生成するプロジェクトをビルドしてそれを削除しても再生成されないので、このプロジェクトを削除して新しいプロジェクトを作成します。「自動的にビルド」をチェックしないでください。あなたはプロジェクトをきれいにするか、 "自動的に構築する"をチェックしてRを正しく生成します。
あなたがLintエラーチェッカーを使うならば、それは "R"の偽のインポートを識別するでしょう。 XMLシステムがスティックの間違った終わりを把握すると、すべてが失われます。
私の場合は、IDEのシャットダウン、クリーニング、ビルドなどを試みた後、問題が私の "res"フォルダの中にある "untitled folder"に誤って追加されたのでしょう。
私は Ant スクリプトが行ったように、そのようなエラーがEclipseによって出力されることを望みます。
[null] invalid resource directory name: /Users/gubatron/workspace.Android/my-project/res/untitled folder
他の答えがしなかったことが私のために働いたものです:
それでもまだある場合は、 クリーン もう一度!
完了しました。お役に立てれば。
ブログ記事Android開発者向けヒント:R.Javaの再生成を参照してください。
実際に見つかった問題の考えられるすべての系統の発見を続けるのではなく、私はコードを見つめるという実証済みのアプローチを利用することにしました。しばらくの間、私はres
フォルダーの下に数人の赤い男を見つけました。それらは私の現在の再設計作業の残り物で、物事がうまくいかなくなる前に私が削除しようとしていました。私がヒットしたらすぐ Del それらの上には、あざけりなRのことが自動的に再現されました。
単一の文で:プロジェクトからすべての不要なファイルを削除し、マニフェストファイルから不要なコードを削除します。
今日の午後、私はこの問題に初めて遭遇しました。私が新しいプロジェクトを作成しても、R.Javaは生成されません。私は職場を変え、そしてすべてがまたうまくいった。
AndroidManifest.xml
ファイルがstrings.xml
に格納した文字列定数を参照していて、それらの文字列をstrings.xml
に名前変更した場合は、それらをマニフェストで変更して、すべてをビルドに混乱させる必要があります。
変更した定数を参照しているレイアウトの.xmlファイルについても同じことが言えます。残念ながら、Eclipseの Markers ビューも Problems ビューも、問題を解決するためにどこに行く必要があるのかを教えてくれません - R.Java
が見つからないだけです。他の回答で述べたように、定数参照を修正する必要がある場所をコンソールで調べてから、プロジェクトをもう一度クリーンアップします。
すべての答えが失敗した場合は、コマンドラインからリソース生成を実行できます。Eclipseプロジェクトディレクトリに移動します。それから走りなさい
aapt.exe package -f -v -m -S res -J src -M AndroidManifest.xml -I Android_HOME/platforms/Android-XXX/Android.jar
適切な値でANDROIRD_HOMEとXXXを変更するだけです。エラーがある場所には画面上の情報が表示されます。
ここにリストされているのを見ることはできませんが、私のR.Java
が削除され、自動的に再構築されないという問題に遭遇しました。
これは私がswitch文と文字列を扱っていたときに起こりました。 Eclipseは、私が自分のプロジェクトのコンプライアンスを1.7に変更することを勧めました。これにより、Androidのように速やかにプロジェクトが破壊されました(R.Java
) このコンプライアンスを使用できない 。
コンソール:
[2013-03-12 17:26:33 - CrimeAtlas] Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
「プロジェクトプロパティの修正」を使用して、提案されているようにログを確認することでエラーを修正しました。私は一時的にそれらをLinearLayout
で置き換えることに言及したファイルでXMLをコメントアウトしました。それが修正されると、bam、それは再び現れます( "Build Automaticly"がオンの場合)。問題がなければ、XMLファイルを元に戻すことができます。