Seit dem Update auf ADT
14 kann ich mein Projekt nicht mehr erstellen. Es wurde vor dem Update gut gebaut.
Der Fehler:
[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
Ähnliche Probleme wurden gemeldet und ich habe die Vorschläge dort einschließlich ausprobiert
- Neustart
Eclipse
. - Projekt bereinigen und neu erstellen - Deaktivieren Sie die Option "Projekt-> Automatisch erstellen", dann "Bereinigen" und "Erstellen" und versuchen Sie dann, es auszuführen. Setzen Sie die Option "Automatisch erstellen" auf "Ein" zurück
- Neuinstallation der
Android
Entwicklertools - Neuinstallation von Eclipse (aktualisiert auf die neueste Version 3.7.1)
- Erstellt ein neues Projekt, das aus dem Dateisystem importiert wird
- Erstellt ein neues Projekt aus Subversion.
Antworten:
Ich hatte das gleiche Problem, ziemlich seltsam, weil es nur bei Verwendung von Eclipse passierte (aber mit Ant war es in Ordnung). So habe ich es behoben:
Project Name
Build Path
->Configure Build Path
In
Java Build Path
gehen Sie auf die RegisterkarteOrder and Export
Deaktivieren Sie Ihre
.jar
BibliothekNur manchmal: Auf der Registerkarte "Bestellen und Exportieren" hatte ich dort keine JAR-Bibliothek, daher habe ich das Kontrollkästchen "Android Private Libraries" deaktiviert. Jetzt läuft mein Projekt.
quelle
Android Private Libraries
deaktiviert. Jetzt läuft mein Projekt.Mein Problem wurde behoben, nachdem einige Verzeichnisse und Dateien bereinigt wurden, die von den vorherigen Versionen der Tools übrig geblieben waren. ADT Rev 14 ändert, wo Binärdateien gespeichert sind . Ich habe das gesamte bin-Verzeichnis gelöscht, Eclipse neu gestartet, den Build bereinigt und eine Neuerstellung erzwungen. Das schien anfangs der Trick zu sein, aber das Problem trat nach dem nächsten Lauf wieder auf.
Endlich stellte ich fest, dass mein bin-Verzeichnis im Projekterstellungspfad enthalten war. Ich habe bin vom Erstellungspfad ausgeschlossen und die obigen Schritte wiederholt. Dies löste mein Problem.
quelle
[Für mich gelöst]
Eclipse-Projekteigenschaften-> Java-Erstellungspfad-> Bestellen und Exportieren
Deaktivieren Sie die Option für private Android-Bibliotheken.
quelle
Nichts davon hat geholfen. Am Ende war es ein einfaches Problem.
Ich hatte ein Projekt, das FacebookSDK und ViewPagerIndicator als Bibliotheksprojekte verwendet. Alle wurden auf Android API 16 erstellt und diese beiden Projekte verwendeten die Android Support Library vX (X ist nicht 16!)
Ich habe diesen beiden Projekten eine externe JAR hinzugefügt und auf \ extras \ android \ v4 verwiesen ... und auch die v4-JAR entfernt, die ich in ihren libs-Ordnern hatte.
Reinigen Sie alle Projekte und erstellen Sie sie neu.
Voilla!
Der genaue Fehler, den ich erhalten habe: Dex kann nicht ausgeführt werden: Mehrere Dex-Dateien definieren Landroid / support / v4 / view / PagerAdapter; Konvertierung in das Dalvik-Format fehlgeschlagen: Dex kann nicht ausgeführt werden: Mehrere Dex-Dateien definieren Landroid / support / v4 / view / PagerAdapter;
quelle
Dieses Problem trat auf, ich hatte eine externe .jar in meinem libs-Ordner namens gson-2.2.2.jar, aber aus irgendeinem Grund gab es zwei davon, gson-2.2.2.jar und gson-2.2.2.jar ( 1), ich habe letzteres einfach gelöscht und mein Projekt wieder gut gebaut.
quelle
/libs
aus einem früheren Experiment in meinem , was sowohl zu einem Bibliotheksprojekt als auch zu dem daraus generierten .jar führte. Das Löschen dieses Glases unter/libs
löst das Problem. +1quelle
manifest file
Eclipse aus dembin
Verzeichnis entfernt wird, fügen Sie es manuell hinzu und bereinigen Sie das Projekt erneut.Wie andere bereits erwähnt haben, tritt dies auf, wenn Sie mehrere Kopien derselben Klasse in Ihrem Erstellungspfad haben - einschließlich bin / in Ihrem Klassenpfad ist eine Möglichkeit, dieses Problem zu gewährleisten.
Für mich trat dies auf, als ich android-support-v4.jar zu meinem libs / -Ordner hinzugefügt hatte und Eclipse irgendwie eine zweite Kopie zu bin / classes / android-support-v4.jar hinzufügte.
Das Löschen der zusätzlichen Kopie in bin / classes löste das Problem - unsicher, warum Eclipse dort eine Kopie erstellt hat.
Sie können dies mit testen
quelle
Für mich klicke ich einfach mit der rechten Maustaste auf Projekt -> Erstellungspfad -> Konfigurationspfad konfigurieren -> Bibliotheken -> Abhängigkeit entfernen
nachdem es funktioniert.
quelle
Dieser Fehler kann auftreten, wenn Sie zwei Jars haben, die dieselben Klassennamen enthalten, z. B. zwei Bibliotheken: jsr311-api-1.1.1.jar und jersey-core-1.17.1.jar, die beide die Klasse javax.ws enthalten .rs.ApplicationPath. Ich habe jsr311-api-1.1.1.jar entfernt und es hat gut funktioniert.
quelle
Ich habe diesen Fehler erhalten, nachdem ich die Datei facebooksdk.jar zu einem Projekt hinzugefügt habe, das bereits Abhängigkeiten von android-support-v4.jar hatte . Da die facebooksdk.jar bereits eine eigene android-support-v4.jar enthält, gab es Konflikte. Das Entfernen des früheren android-support-v4.jar aus den Projekten Properties / Java Build Path / Libraries hat das Problem für mich behoben.
quelle
Gehen Sie zu Projekt / Eigenschaften und Java- Erstellungspfad und deaktivieren Sie die privaten Android-Bibliotheken .
Erledigt
quelle
Ich habe Android-Abhängigkeiten aus dem Erstellungspfad entfernt und es hat funktioniert.
Bearbeiten: ignoriere das. Ich hatte das gleiche Glas in meinem Ordner für Maven-Abhängigkeiten und Bibliotheken. Ich habe den im lib-Ordner entfernt.
quelle
Sie haben wahrscheinlich r14 installiert . Dieser Fehler wurde möglicherweise durch das Update der Plattform-Tools verursacht. Sie müssen Ihr SDK neu installieren
quelle
Für mich besteht dieses Problem nur, solange Android-Bibliotheksprojekte an meinem Projekt beteiligt sind. Wenn ich also alle Bibliotheken entferne und das tue, was Sie gesagt haben, kann ich meine App erneut ausführen. Wenn es sich um Bibliotheken handelt, hat sogar der Trick zum Entfernen von Behältern funktioniert.
Ich verstehe nicht, warum dieser Fehler heute zum ersten Mal aufgetreten ist, da ich ADT 14 seit mehreren Tagen verwende. Nun, es gab andere Fehler, die mich glücklich gemacht haben.
quelle
Das Löschen des bin-Ordners war nicht genug, ich habe auch den gen-Ordner gelöscht. Nach zwei Neuerstellungen war die Dex-Fehlermeldung verschwunden.
quelle
Wählen Sie das Projekt im Projektexplorer aus , klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften -> Java-Erstellungspfad -> Quelle -> Aktivieren Sie das Kontrollkästchen für Ausgabeordner Quellordner zulassen
quelle
Ich hatte im Grunde das gleiche Problem. Ich habe den BIN-Ordner gelöscht und dann nicht verwendete JAR-Dateien für Order and Import aus Eclipse entfernt. Danach hat es funktioniert
quelle
Ich bin zu spät zu dieser Party, füge aber meine eigenen Erfahrungen hinzu, damit ich sie später wiederfinden kann :)
Ich bin auf dieses Problem gestoßen, nachdem ich die Android SDK- und Eclipse-Ad-Ins aktualisiert habe. Kein Upgrade bleibt ungestraft!
Das Problem war für mich mit Bibliotheksprojekten verbunden. Meine App verweist sowohl auf Standard-Java-Projekte als auch auf Android-Bibliotheksprojekte. Ich habe festgestellt, dass die Java Build Path-Einstellungen die Ordner src und res der Android-Bibliotheksprojekte in die Quellliste aufgenommen haben (Upvotes für alle, die erwähnen, dass bin in source ein Problem darstellt, src und res waren ebenfalls ein Problem.)
Die Lösung war also:
Es war auf dem Weg, all das aus den anderen Lösungen zusammenzusetzen! Puh!
quelle
Ich bin darauf gestoßen, als ich von ADT 14 auf 15 aktualisiert habe. Um es zum Laufen zu bringen, habe ich einfach den .eclipse-Ordner (zusammen mit meinen Einstellungen) gelöscht und ADT 15 neu installiert.
quelle
Nachdem Sie Terrys Antwort zum Löschen des bin-Verzeichnisses und Larrys zum Speicherort des ANT-Verzeichnisses gelesen haben:
Ich habe die Dateien im BIN-Verzeichnis meines Projekts in die BIN / CLASSES verschoben und bin betriebsbereit.
Bearbeiten 1 Dann beim zweiten Lauf fehlgeschlagen ... doh
Bearbeiten 2 Also geschlossen Eclipse hat Dateien zurück an den ursprünglichen Speicherort verschoben und alles funktioniert ... ähm was? Ich gebe nicht vor zu wissen, warum das funktioniert hat. Wird aktualisiert, wenn sich Änderungen ergeben.
Bearbeiten 3 Ich habe aus meinen Backups festgestellt, dass sich tatsächlich doppelte Dateien im BIN-Verzeichnis und in BIN / CLASSES befanden.
So lautet die Antwort: Sie haben keine Dateien in beiden Orten. Zumindest für mich hat das funktioniert.
quelle
Ändern Sie Ihre Datei eclipse.ini und setzen Sie den maximalen Speicherparameter auf
Starten Sie dann Ihren Computer neu.
Es hat bei mir funktioniert.
quelle
fand eine Lösung, glaube ich?
Wo steht: "Lcom / coremedia / iso / AbstractBoxParser $ 1", das ist zufällig der Speicherort der Bibliothek, die ich importiert habe und die das Problem verursacht hat. Gesucht nach com.codemedia.iso.AbstractBoxParser $ 1.class und .AbstractBoxParser.class .... nahm das Glas, entpackte es, entfernte beide Dateien, packte es als .zip neu, fügte es der Bibliothek hinzu, bereinigte und arbeitete! kein Konflikt mehr für mich! (auch keine Updates oder zusätzliche Downloads)
quelle
Ich hatte zwei verschiedene Versionen von Cordova .jar-Dateien in meinem libs-Ordner, ich habe die gelöscht, die ich nicht einmal verwendet habe, und es hat sofort funktioniert. Seltsam, weil ich das vorher nicht bemerkt habe und es vorher funktioniert hat und dann plötzlich aufgehört hat zu arbeiten ...
quelle
Das ADT R14-Update ändert, wo die Klassen in das Verzeichnis bin / classes verschoben werden (siehe http://tools.android.com/recent/buildchangesinrevision14 ). Wenn Sie ANT verwenden, sollten Sie den Pfad für Ihre Klassen von bin zu bin / classes ändern. Das hat bei mir funktioniert.
quelle
Lösung für mich:
Navigieren Sie zu Ihrem Projektarbeitsbereich (nicht zu Ihrem Projekt) und führen Sie die folgenden Befehle aus:
dev1: Arbeitsbereich $ cd ~ / Documents / workspace / .metadata / .plugins / dev1: Arbeitsbereich $ rm -rf org.eclipse.core.resources
Navigieren Sie zu Ihrem Eclipse-Verzeichnis und geben Sie den folgenden Befehl ein:
dev1: eclipse $ ./eclipse clear
Eclipse beginnt mit einem leeren Arbeitsbereich - keine Sorge, Ihre Projekte sind noch vorhanden. Einfach neues Projekt aus vorhandenen Ressourcen erstellen und Dinge sollten Sauce sein.
Der genaue Fehler, den ich erhalten habe: [2012-02-07 14:15:53 - Dex Loader] Dex kann nicht ausgeführt werden: Mehrere Dex-Dateien definieren Landroid / support / v4 / view / PagerAdapter; [2012-02-07 14:15:53 - ProjectCloud] Konvertierung in das Dalvik-Format fehlgeschlagen: Dex kann nicht ausgeführt werden: Mehrere Dex-Dateien definieren Landroid / support / v4 / view / PagerAdapter;
quelle
Ich habe mehrere Bibliotheksprojekte mit demselben Paketnamen, die im AndroidManifest angegeben sind (daher werden von R.java keine doppelten Feldnamen generiert). Ich musste alle Berechtigungen und Aktivitäten aus der AndroidManifest.xml für alle Bibliotheksprojekte entfernen, um den Fehler zu beheben, damit Manifest.java nicht mehrmals erstellt wurde. Hoffentlich kann das jemandem helfen.
quelle
Nachdem ich alle anderen Vorschläge ohne Glück ausprobiert hatte, löschte ich den gesamten Inhalt meines Projektverzeichnisses 'bin', führte dann Eclipse erneut aus und es funktionierte.
quelle
Ich habe ein Nicht-Bibliotheksprojekt in ein Bibliotheksprojekt konvertiert, aber es hatte eine zuvor erstellte JAR-Datei im libs-Ordner. Durch das Entfernen dieser JAR-Datei wurde dieser Fehler behoben.
quelle
Ich hatte das gleiche Problem, als ich beim Pushen meiner App einige JAR-Dateien sah, die zweimal geladen wurden, daher mehrere Dex-Fehler. Gehen Sie einfach zu Ihren Projekteigenschaften -> Java Build Path und deaktivieren Sie das JAR, das zweimal geladen wird.
quelle
[Für mich gelöst]
Durch Entfernen der doppelten Bibliothek "JAR-Datei" entfernen Sie dann die Datei BuildConfig.java, das Projekt bereinigen und seine Arbeit.
quelle