2012-02-06 18 views
10

私はAndroidには新しく、プロジェクトの立ち上げには時間がかかります。予期しないトップレベルの例外:java.lang.IllegalArgumentException:既に追加されています

UNEXPECTED TOP-LEVEL EXCEPTION: 
java.lang.IllegalArgumentException: already added: Lcom/.../model/AvailabilityRequest$DAY_TIME_PREFERENCE; 
[2012-02-06 17:32:11 - main-app] Dx  at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) 
[2012-02-06 17:32:11 - main-app] Dx  at com.android.dx.dex.file.DexFile.add(DexFile.java:163) 
[2012-02-06 17:32:11 - main-app] Dx  at com.android.dx.command.dexer.Main.processClass(Main.java:486) 
... 
[2012-02-06 17:32:11 - main-app] Dx  at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
[2012-02-06 17:32:11 - main-app] Dx 1 error; aborting 
[2012-02-06 17:32:11 - main-app] Conversion to Dalvik format failed with error 1 

私はこの愚かな事のために膨大な時間を殺してきた。しかし、私は試して作るたびに日食からアプリを起動するために、私はこのエラーを取得します。明らかに、これは既知の問題ですが、何も私のために働くものではありません。私が持っているもの

オペレーションシステム - 私は考えることが重要ですOS X、。
IDE - バージョン - 3.7.1
ADT日食:15.0.1.v201111031820-219398
ビルドツール - Mavenの

私がこれまで試したこと:
- プロパティ - > Javaのビルド・パス - > Android xyzを除くすべてのライブラリを削除し、Maven-> Update Project Configurationをクリックしてプロジェクトを消去するライブラリ。
- マジックを閉じて再オープンする魔法;
- プロジェクトとそのライブラリを削除して再作成してダンスします(エラーメッセージのテキストに従って、メインプロジェクトで使用されている2つのライブラリのいずれかにあるソースが重複しています)。

上記の亜種のうちの1つ(通常は第1のもの)の後、それは働き始めるが、私は20分を働かせて数時間を過ごすことができる...今日、私はそれをまったくやっていけない。

何か考えていただければ幸いです。

+0

見つかったもの:http://code.google.com/p/android/issues/detail?id=20398#c22関連するものがあるようです。 – makaron

+0

m2e-androidを使用していますか? –

+0

もしそうなら、質問を編集してもっと明確にすることができます。 –

答えて

3

私が理解する限り、主なものは、mavenをビルドツールとして使用していたことです。私は問題なくプロジェクトをビルドして展開することができましたが、環境(Eclipse)から開始できませんでした。

私は間違っていないよ場合は、あなたのプロジェクトを起動するための実行 - >実行構成をEclipseとAndroidのアプリケーションを作成するために行くとき、あなたは基本的にとの.apkを構築するために日食(AndroidのSDK)を頼みますAntあなたのために、mavenではなくEclipseはAntでプロジェクトをビルドし、生成された.apkをデバイス/シミュレータにプッシュします。しかし、プロジェクトのすべての設定はになっています。pomファイルでは、Antはプロジェクトをビルドできず、この種のエラーが発生します。

ソリューション:あなたはそれを展開した後
はない実行メニューから、機器/シミュレータからアプリの権利を開始し 。 あなたのアプリをデバッグするには、DDMSのデバッグを使用します。これはeclipseが提供するものではありません。 DDMSが(私の場合のように)どこにあるのかわからない場合 - Macそれはウィンドウ - >オープンパースペクティブ - >その他...メニューからDDMSを選択してください。 EclipseのデバッグJavaと一緒にブックマークとして入れることができます。 DDMSでは、デバッグを含むすばらしいツールがすべて見つかります。

P.S.これは初心者から初心者からの返答です...私が間違っている箇所が見えたら、私に知らせてください。私の答えを編集してください。

6

Eclipseクラスパスに同じ名前/パッケージの複数のクラスが含まれている場合、ADTはこのような例外をスローします。この場合、Mavenの依存関係にあるAvailabilityRequestクラスの複数のインスタンスが発生しています。

これを解決するには、クラスパス依存関係に同じクラスファイルが含まれているかどうかを調べる(Ctrl-Alt-Tキーを押し、AvailabilityRequestを入力します)。

次に、m2e POMエディタでPOMを開き、[依存関係階層]タブに移動します。これにより、無関係の依存関係を選択することができます。これを右クリックして除外して「Exclude Maven Artifact ...」を選択すると、自動的に<exclusions>要素がPOMに追加されます。これにより、Eclipseクラスパスから重複したJARが削除され、プロジェクトをビルドすることができます。

また、POMにどのような依存関係を追加するか注意してください。

+0

ありがとう! – makaron

+1

リカルド、あなたのサポートのおかげで(+1)、私は解決策を見つけることができませんでしたが、私は周りの方法:これは、すべての目的だったアプリをデバッグすることができます。 – makaron

関連する問題