2014-09-28 15 views
5

Das Problem: Ich kann mein Projekt nicht erstellen. Wenn ich versuche, das folgende Zeichen wird in der Konsole angezeigt:Eclipse, Android: Unerwartetes kann nicht ausgeführt werden dex: Mehrere dex-Dateien definieren

[2014-09-28 23:49:30 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/annotation/AnimRes; 
[2014-09-28 23:49:30 - Shop] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/annotation/AnimRes; 

Ich verlor Stunden für dieses Problem eine Lösung zu suchen, aber kein Ergebnis .. Ich habe versucht, das Projekt zu reinigen, die Binärordner usw. löschen aber nichts funktionierte ..

Bitte helfen sie, ich weiß nicht, was zu tun ..

+0

Versuchen Sie alle [Lösungen in dieser SO-Frage erwähnt] (http://stackoverflow.com/questions/8059719/unable-to-execute-dex-multiple-dex-files-define) – ashoke

Antwort

5

ich es nicht so endete beheben konnte ich durch die Schaffung neuer Projekt in einem anderen Arbeitsbereich auf und kopiert den gesamten Code zu dem neuen Projekt. Es ist nicht die klügste Sache, aber was kann ich tun ..

1

Ich habe das gleiche Problem. Ich denke, dass es passiert ist, weil es Änderungen im bin-Ordner-Inhalt gibt, wenn ich das Projekt-Repository mit tortoise SVN aktualisiere. Ich habe bin entfernt, und Eclipse generiert neue, aber das Problem besteht immer noch. Aber ich habe das Problem gelöst, indem ich die Android-Abhängigkeits-Bibliothek entfernt habe. Hier die Schritte:

Wählen Sie Projekt -> Rechtsklick -> Wählen Sie Build-Pfad -> Build-Pfad konfigurieren -> In der Registerkarte Bibliotheken entfernen Android Abhängigkeiten -> OK. Säubern Sie anschließend das Projekt und führen Sie es erneut aus. :)

+0

können Sie Ihren Fehler von zeigen Konsolenprotokoll ..? –

+3

Entschuldigung, ich habe meinen Kommentar gelöscht. In meinem Fall war Android-Support-v4 das Problem. Mein Projekt verfügt sowohl über android-support-v4 als auch über AppCompat. Also, ich habe Support-v4 entfernt und gereinigt. Und der Fehler war verschwunden. :) – cmcromance

+0

thx cmcromance! löschen support-v4 funktioniert für mich;) –

0

Entfernen Sie die Bibliothek, die android-support-v4.jar enthält, und fügen Sie dann den Android-support-v4.jar dem Pfad direkt hinzu. Übrigens verwende ich Eclipse für IDE.

7

Entfernen Sie die android-support-annotations.jar aus dem Ordner libs. Diese Anmerkungen sind bereits in den letzten Versionen der Datei android-support-v4.jar enthalten.

+0

du hast meinen Tag gemacht –

2

Ich habe auch mehrere Stunden in diesem Problem verloren, aber ich denke, dass ich eine Lösung gefunden habe, zumindest für meine. Andoid Studio sagte mir, dass ich hatte "Mehrere Dex-Dateien definieren Landroid/support/Annotation/AnimRes;" aber er sagte auch eine Datei aufrufen inputList.txt, die einen Fehler hatte. Nun, ich fand diese Datei im Verzeichnisbaum und ich fand in App/Build/Intermediates/Tmp/Dex/Debug Ordner. Die Datei ist eine einfache Textdatei, die für jede Abhängigkeit eine Zeile als Support-Annotation oder androidplot-core mit einem absoluten Pfad hatte.

Ich sah mehrere Reihe wiederholt und ich dachte, wenn ich entferne, löse ich das Problem, aber es hat nicht funktioniert.

Dann suchte ich diesen Weg und alle .jar im selben Ort sind: app/build/Intermediate/pre-dexed/debug/ Ordner, und ich sah Dateien wiederholt .jar und ich diese entfernt, nachdem ich ging zu der Datei und ich habe auch wiederholte Zeilen gelöscht.

Dann lief ich mein Projekt und der Fehler verschwand, das Problem wurde gelöst.

Das Problem war dann: .jar-Dateien in diesem Ordner dupliziert.

Einfach!

0

Wie die Konsolenausgabe sagte "Mehrere Dex-Dateien definieren".

Unterher bin/dexedLibs, dort viele Gläser mit dem gleichen Namen aber unterschiedlicher Version.

Ich löse es, indem Sie alle duplizierten Unterstützung v4 Gläser unter allen lib-Ordnern entfernen und meinen Hauptprojektverweis auf den einzigen im Bibliotheksprojekt machen, dann säubern Sie das Projekt, um neu aufzubauen. Es funktioniert als ein Charme jetzt.