17

res \ layoutフォルダーのmain.xmlファイルにいくつかのUI要素を追加しましたが、呼び出しを介してそれらにアクセスしようとすると、R.layout.my_uielement作成したUI要素がそこにありません。R.layoutUI要素を含む新しいxmlファイルを追加しても、クラスに表示されません。私はそれらのIDをチェックしました、そしてそれらは正しいフォーマットを持っています(私は思う)android:id="@+id/my_button":。何が問題なのですか?最初にコードをコンパイルする必要がありますか?
更新:私はすでにそれ
を試しました。それは役に立たないようです。私も試しましたが、どちらも登録されていません。adb kill-serveradb start-serverR.id.my_uielement

4

8 に答える 8

35

これは当てはまらないかもしれませんが、android.Rパッケージ(デフォルトのandroidリソース)から何かを使用し、自分のリソースパッケージから何かを参照する前にクラスでそれを使用すると、Eclipseがimport android.R;ステートメントを追加します。インポートします。これは、パッケージのリソースを暗黙的に検索するデフォルトの動作と競合します。

のインポートステートメントを確認してくださいimport Android.R;。そこにある場合は、削除します。また、android.Rの何かを使用している場合は、コードで使用するときに完全に修飾します。

于 2010-03-21T14:53:00.213 に答える
9

クリーンなプロジェクトは正常に機能します。Eclipseでは、いくつかのxmlコンポーネントを変更しただけでは、常に新しいRファイルが生成されるとは限りません。掃除はそれをします。

于 2011-07-29T14:06:25.763 に答える
6

R.layout.your_elementではなく、R.id.your_ui_elementを使用します

于 2010-03-21T13:47:13.197 に答える
2

Cleanは、クリーニング後にプロジェクトを構築するため、機能しています。したがって、問題は(少なくとも私の場合は、数日前に自動ビルドをオフにしたためです)、.xmlファイルにアイテムなどを追加した後、Eclipseがそれをビルドせず、ビルドできないことです。 R.javaを更新します。

于 2012-12-09T20:05:39.763 に答える
2

私もこの問題に直面しました。R.javaは生成も更新もされていません。

プロジェクトの作成時にR.javaが生成されない場合は、「空の」プロジェクトを実行します。リソースへの参照を含むR.javaが自動的に生成されます。

R.javaが更新されていない場合は、[ヘルプ]-> [Eclipseで更新を確認]で更新を確認し、必要に応じてSDKとADTを更新します。

于 2011-07-05T07:21:14.867 に答える
2

2日後、私はそれを修正する方法を見つけました...

半分完了したプロジェクトをメールに保存していたので、R.java消えたときに古いファイルに置き換えたところR.java、多くのエラーが修正され、必要な変更を加えてプロジェクトをビルドしました(クリーンではないビルド)...わかりませんクリーンとビルドが同じ仕事をするかどうか..しかし、私がそれを掃除するたびに、R.java以前は見えなくなっていました...

于 2011-12-07T03:24:50.950 に答える
1

文字列.xmlファイルまたは他の場所にアイテムを追加すると、R.javaファイルが常に適切に更新されるとは限らないことに気付きました。R.string.newStringのように追加した新しい値を使用する場合、実際の整数値はR.string.oldStringなどを指している可能性があります(通常、strings.xmlの新しい要素の真上または真下の要素のようですがまだパターンを特定していません)。

R.javaファイルを変更することは想定されていませんが、それを削除することについては何も述べていません(とにかく、私が見たことはありません)。Eclipseは、適切に割り当てられた整数値を使用してファイルをすぐに再生成するため、R.javaを削除すると、通常、リソース関連の問題が修正されることがわかりました。

私はEclipseの初心者なので、R.javaを削除した場合の影響を理解できないかもしれませんが、これまでのところうまく機能しているようです。私がしていることが非常に悪い場合は、私に知らせてください。

于 2011-12-16T00:25:45.547 に答える
1

これらのどれも私のために働いていませんでした!にアクセスできる唯一の方法@+id/fooは、によるものmyPackage.R.id.fooです。

于 2014-04-25T20:26:17.493 に答える