2011-07-25 5 views
5

私はこのエラーを取得していますAndroidのソースコードをビルド中:Androidのソースのビルド:重複したクラス

out/target/common/obj/APPS/SystemUI_intermediates/src/com/android/systemui/R.java:10: duplicate class: com.android.systemui.R

を私はrmコマンドを実行している場合でも、そのファイルを削除するかmake cleanを実行します。それはなぜですか、どうすれば対処できますか?

答えて

9

おそらく2つの異なるディレクトリに2つのR.javaファイルがあります。検索を実行してのを見つけて削除してから再構築してください。

+0

これは私のために働いた。わーい! – Yuvi

0

マニフェストファイルでパッケージ名を変更したかどうかを確認するか、R.javaファイルを削除してから再度ビルドしてください。

3

1つのビルドシステムではソースファイルを1つのディレクトリに作成したまま残すことができますが、他のビルドシステムでは通常のソースファイルとして取得し、生成されたR.javaを別のディレクトリに配置します。

たとえば、AOSP構築プロセスを使用できますが、IntelliJはソースを開いた後、IntelliJがディレクトリに余分なR.javaを置いているため、破損します。

概要:正しく出力ディレクトリをきれいにし、あなたのソースディレクトリが余分R.javaファイルを取得していないことを確認してください。プロジェクトルートディレクトリにfind . -name R.javaを実行して、gen dir

2

のようなR.javaファイルが重複していないかどうか確認してください。重複したR.javaファイルとBuildConfigファイルを削除するのに役立ちませんでした。

なぜ私は最初の場所でファイルが重複しているのか理解しています。私の場合は、プロジェクトのモジュール間でループ依存関係を間違って作成したためです。このようにして、コンパイラはすでに依存関係としてコンパイルされたモジュールのいずれかのクラスの作成を開始しました。 不要な依存関係を削除してプロジェクトを再コンパイルすると、問題が解決されました。

P.S.
私が依存関係の問題をすぐに見つけられなかった理由は、私が現在使っているAndroidスタジオ(0.6.1)にバグがあり、プロジェクト設定ビューがバグを起こしたり、すでに削除されたモジュール、またはモジュールを表示していない依存関係リストに現在ある。 Androidスタジオを再起動すると問題が解決されるため、上記の修正プログラムを適用する前に再起動することをおすすめします。

+0

あなたは絶対に正しいです。あなたの顔が青色になるまでビルドファイルを削除することができますが、重複したR.javaの競合を引き起こすたびに必ず再生成/再構築します。 –

0

は、NetBeansを使用している場合、それはNetbeansのキャッシュをクリアするために役立つかもしれないBUG 226360



かもしれません:Help

ゴー - >Aboutあなたは

が表示されますキャッシュディレクトリ:パス\ to \ディレクトリ

指定されたディレクトリに移動し、すべてを削除します。

関連する問題