19

ドキュメントからの抜粋:

Eclipse は、リソースを使用するファイルの先頭に import android.R ステートメントを追加することを好む場合があります。特に、Eclipse にインポートの並べ替えや管理を依頼する場合です。これにより、メイクが壊れます。これらの誤ったインポート ステートメントに注意して、削除してください。

私の質問:なぜですか?なぜEclipseはこれを続けているのですか?

私はかなり長い間Eclipseを使用してAndroidアプリケーションを開発してきましたが、なぜEclipseがそのようなことをするのか理解できませんでした.

Ctrl+ Shift+を使用Oして import ステートメントを整理すると、import android.R自動的に追加されます。そして突然、正しいコードが突然赤いエラーで覆われ、R を解決できないと表示されます。何が間違っていたのかわからないので、初心者にとっては本当に怖いことです。

別のシナリオでは、レイアウト ファイルに問題があり、R.java生成されていないとします。エラーが原因で R.java が生成されていないため、R を解決できないと表示されます。カーソルをエラーのいずれかに移動すると、次のように提案されimport android.Rます。

かなり長い間 Android に取り組んだ後、私は android.R をインポートしないことを知っていますが、率直に言って、インポート android.R を追加しても、私の問題は決して解決されませんでした . それは、開発の最初の数日間は本当に苦痛だった既存の問題に追加されただけです。

では、誤ったインポートを行うよう提案するEclipseの背後にある理由を知っている人はいますか? ただのバグですか?少なくともAndroidのドキュメントで言及された後は修正されているため、バグではないと思います。

バグでなければ、本当の目的はandroid.R何ですか? それは正確には何を指していますか?

あなたの意見/経験は本当に役に立ちます!

ありがとう!

4

3 に答える 3

12

これはバグではありません。android.R役に立ち、問題を解決できる場合がいくつかあります。

android.R自分のプロジェクトにあるような R.java ファイルです。プロジェクト内のもの ( ) には、レイアウト、ドローアブル、XML ファイル、生ファイル、文字列など、フォルダーのyour.packagename.R下にあるリソースへの参照が保持されます。/res

一方、このandroid.Rファイルには、Android に組み込まれている特定のデフォルト リソースへの参照が保持されていますsimple_list_item_1

Eclipseはこれを提案し、プロジェクトのRファイルがXMLエラーなどのために生成されていない場合、コードが存在しないファイルを参照しているように、これを自動インポートします。をインポートすることによりandroid.R、Eclipse はコードが存在するクラスを参照するようにします。ただし、android.Rあなたと同じリソースを持っている可能性は低く、別のエラー セットが発生します。

于 2013-03-09T11:12:01.577 に答える
3

また、Eclipse は、Android ツールを使用してパッケージ名を変更し、コード内の基本パッケージ名を同じ名前に変更しない場合、クラスに android.R を自動的にインポートしようとします。これは、ファイルに 2 つの R があると想定されるためです。

于 2013-09-04T09:53:42.877 に答える
0

これを試して...

Window -> Prefs -> Java -> Editor -> Save Actions

「インポートの整理」のチェックを外します。うまくいけば、それでうまくいくでしょう。

この設定の後、それは私のために働きます。

于 2015-12-22T10:24:33.270 に答える