Seit dem Update auf ADT
14 kann ich mein Projekt nicht mehr erstellen. Es wurde vor der Aktualisierung 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
Eclipse
.Android
Developer ToolsMein Problem wurde behoben, nachdem einige Verzeichnisse und Dateien aus früheren Versionen der Tools entfernt wurden. ADT Rev 14 ändert den Speicherort der Binärdateien . Ich habe das gesamte bin-Verzeichnis gelöscht, Eclipse neu gestartet, den Build bereinigt und eine Neuerstellung erzwungen. Das schien den Trick zunächst zu tun, aber das Problem kam nach dem nächsten Lauf zurück.
Schließlich 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.
Ich hatte das gleiche Problem, ziemlich seltsam, weil es nur bei der Verwendung von Eclipse passierte (aber bei Ant war es in Ordnung). So habe ich es behoben:
Project Name
Build Path
-> Configure Build Path
Wechseln Sie in Java Build Path
zur Registerkarte Order and Export
Deaktivieren Sie Ihre Bibliothek .jar
Nur manchmal: Auf der Registerkarte "Bestellen und Exportieren" gab es keine JAR-Bibliothek. Daher habe ich das Kontrollkästchen "Android Private Libraries" deaktiviert. Jetzt läuft mein Projekt.
[Für mich gelöst]
Eclipse-Projekteigenschaften-> Java-Erstellungspfad-> Bestellen und exportieren
Deaktivieren Sie Android Private Bibliotheken.
Nichts von alledem hat geholfen. Am Ende war es ein einfaches Problem.
Ich hatte ein Projekt, das FacebookSDK und ViewPagerIndicator als Bibliotheksprojekte verwendet. Alle wurden auf der Android API 16 erstellt und diese beiden Projekte verwendeten die Android Unterstützungsbibliothek vX (X ist nicht 16!)
Ich fügte beiden Projekten eine externe JAR hinzu und verwies sie auf\extras\Android\v4 ... Und entfernte auch die v4-JAR, die ich in ihren libs-Ordnern hatte.
Bereinigen Sie alle Projekte und erstellen 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 Dalvik-Format fehlgeschlagen: Dex kann nicht ausgeführt werden: Mehrere Dex-Dateien definieren Landroid/support/v4/view/PagerAdapter;
Dieses Problem ist mir passiert, ich hatte eine externe .jar-Datei 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 letztere einfach gelöscht und mein Projekt wieder einwandfrei erstellt.
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, um dieses Problem zu gewährleisten.
Für mich geschah dies, 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
grep -r YourOffendingClassName YourApp | grep jar
Für mich klicke ich einfach mit der rechten Maustaste auf Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren -> Bibliotheken -> Abhängigkeit entfernen
nachdem es funktioniert.
Dieser Fehler kann auftreten, wenn Sie zwei Gläser mit denselben Klassennamen haben, z. Ich hatte zwei Bibliotheken: jsr311-api-1.1.1.jar und jersey-core-1.17.1.jar, die beide die Klasse javax.ws.rs.ApplicationPath enthielten. Ich habe jsr311-api-1.1.1.jar entfernt und es hat gut funktioniert.
Ich habe diesen Fehler erhalten, nachdem ich facebooksdk.jar zu einem Projekt hinzugefügt habe, das bereits Abhängigkeiten von Android-support-v4.jar hatte. Da das facebooksdk.jar bereits ein eigenes Android-support-v4.jar enthält, kam es zu Konflikten. Das Entfernen des früheren Android-support-v4.jar aus den Projekten Properties/Java Build Path/Libraries löste das Problem für mich.
Gehen Sie zu Projekt/Eigenschaften und Java Erstellungspfad und deaktiviertAndroid Private Libraries.
Fertig
Ich habe Android Abhängigkeiten aus dem Erstellungspfad entfernt und es hat funktioniert.
Bearbeiten: ignoriere das. Ich hatte das gleiche Glas in meinem Ordner maven dependencies und libs. Ich habe die im lib-Ordner entfernt.
Sie haben wahrscheinlich r14 installiert , dieser Fehler kann durch das Update der Plattform-Tools verursacht worden sein, Sie müssen Ihre SDK neu installieren
Für mich besteht dieses Problem nur, solange an meinem Projekt Android Bibliotheksprojekte beteiligt sind. Wenn ich also alle Bibliotheken entferne und mache, was du gesagt hast, kann ich meine App erneut ausführen. Wenn es sich um Bibliotheken handelt, hat sogar der Trick zum Entfernen des Papierkorbs seine Arbeit gewonnen.
Ich verstehe nicht, warum dieser Fehler heute zum ersten Mal aufgetreten ist, da ich ADT 14 seit einigen Tagen verwende. Nun, es gab noch andere Fehler, die mich glücklich machten.
Wählen Sie das Projekt in Projekt-Explorer, klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften -> Java-Erstellungspfad -> Quelle - > Aktivieren Sie das Kontrollkästchen Ausgabeordner für Quellordner zulassen
Das Löschen des Bin-Ordners war nicht genug, ich habe auch den Gen-Ordner gelöscht. Dann nach zwei Neuerstellungen war die Dex-Fehlermeldung verschwunden.
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 from Eclipse entfernt. Danach hat es funktioniert
Ich komme 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 unbestraft!
Das Problem betraf für mich Bibliotheksprojekte. Meine App verweist sowohl auf Standardprojekte Java als auch auf Bibliotheksprojekte Android. Ich bemerkte, dass die Java Build Path-Einstellungen die Android Bibliotheksprojekte src und res-Ordner in der Quellliste enthielten ein Problem.)
Die Lösung war also:
Es war auf dem Weg, all das aus den anderen Lösungen zusammenzusetzen! Puh!
Ich hatte zwei verschiedene Versionen von Cordova .jar-Dateien in meinem libs-Ordner, ich habe die gelöscht, die ich nicht einmal benutzt 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 ...
fand eine Lösung, ich glaube?
[2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;
Dort steht: "Lcom/coremedia/iso/AbstractBoxParser $ 1". Dies ist zufällig der Speicherort der Bibliothek, die ich importiert habe und die das Problem verursacht hat. Es wurde nach com.codemedia.iso.AbstractBoxParser $ 1.class und .AbstractBoxParser.class gesucht. Dieses Glas wurde entnommen, entpackt, beide Dateien entfernt und dann als .Zip neu gepackt, der Bibliothek hinzugefügt, gesäubert und funktioniert! kein Konflikt mehr für mich! (auch keine Updates oder zusätzliche Downloads)
Ich bin beim Upgrade von ADT 14 auf ADT 15 darauf gestoßen, und damit es funktioniert, habe ich den Ordner .Eclipse (zusammen mit meinen Einstellungen) gelöscht und ADT 15 neu installiert.
Nachdem Sie Terrys Antwort zum Löschen des bin-Verzeichnisses und Larrys zum Speicherort des ANT-Verzeichnisses gelesen haben:
Ich habe die Dateien in meinem Projekt-BIN-Verzeichnis in das Verzeichnis BIN/CLASSES verschoben und bin am Laufen.
Edit 1 Dann scheiterte im zweiten Lauf ... doh
Bearbeiten 2 Also hat Eclipse die Dateien wieder 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 etwas ändert.
Edit 3 Ich habe von meinen Backups festgestellt, dass es tatsächlich doppelte Dateien im BIN-Verzeichnis und in BIN/CLASSES gab.
Also die Antwort lautet: Keine Dateien an beiden Orten. Zumindest für mich hat das funktioniert.
Ändern Sie die Datei Eclipse.ini und setzen Sie den Parameter für den maximalen Speicher auf
-Xmx1024m
Starten Sie dann Ihren Computer neu.
Es hat bei mir funktioniert.
Das ADT R14-Update ändert sich, wenn 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.
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 startet mit einem leeren Arbeitsbereich. Machen Sie sich keine Sorgen, dass Ihre Projekte noch vorhanden sind. Erstellen Sie einfach ein neues Projekt aus vorhandenen Ressourcen und die Dinge sollten soße 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;
Ich habe mehrere Bibliotheksprojekte mit demselben Paketnamen, der im AndroidManifest angegeben ist (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.
Ich hatte das gleiche Problem, als ich beim Pushen meiner App einige JAR-Dateien sah, die zweimal geladen wurden, daher mehrfacher Dex-Fehler. Gehen Sie einfach zu Ihren Projekteigenschaften -> Java Build Path und deaktivieren Sie das JAR, das geladen wird zweimal.
[Für mich gelöst]
entfernen Sie die doppelte Bibliothek "JAR-Datei" und anschließend die Datei BuildConfig.Java. Bereinigen Sie das Projekt und seine Arbeit.
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.
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.
Ich hatte die meisten der oben genannten Lösungen ausprobiert und in der Vergangenheit hatten einige von ihnen funktioniert.
Aber diesmal funktionierte keiner von ihnen, also hatte ich die .jar-Datei meines Bibliotheksprojekts gelöscht. und erstellen Sie die Bibliothek und das Anwendungsprojekt neu.
Und diesmal hat es geklappt!
Löschen Sie R.Java und lassen Sie Eclipse es neu generieren.
Ich hatte ein ähnliches Problem, als ich ActionBarSherlock als Bibliothek in mein Projekt aufgenommen habe. Eclipse ADT v21.0 vorgefertigte Dex-Dateien angeblich für eine schnellere Erstellung des Projekts. Diese Dex-Dateien waren die gleichen wie einige der JAR-Dateien in meinem Lib-Ordner. Also einfach eins behalten und das andere löschen. Ich habe die Dateien im lib-Ordner gelöscht, da die Dex-Dateien automatisch generiert wurden.
Ich stehe vor dem gleichen Problem. Das Problem Ich habe festgestellt, dass ich ein Bibliotheksprojekt habe. In der Manifestdatei dieses Projekts gibt es keine targetSdkVersion -Eigenschaft. Ich habe diese Eigenschaft unter dem Tag (uses-sdk) hinzugefügt. Dann bereinige mein Projekt. Jetzt läuft meine App normal.
Stellen Sie sicher, dass "Android-support-v4.jar" auf der Registerkarte Reihenfolge und Export unter Java Build Pathdeaktiviert steht
Folge den Schritten:
Dies war das beste Ergebnis, als ich in Google nach diesem Fehler gesucht habe.
Obwohl die Frage nicht fragt, wie man dieses Problem in Bezug auf React Native löst, dachte ich Ich würde es trotzdem für jeden teilen, der hier landet und React Native verwendet.
Aus dem Projektstamm:
cd Android && ./gradlew clean
[Mac - Bash Terminal]cd Android & gradlew clean
[Windows - Eingabeaufforderung]Dann react-native run-Android
erstellen und erneut ausführen.
KEINE DER OBEN GENANNTEN METHODEN HAT FÜR MICH GEARBEITET, ABER MEINES IS HAT WIE EIN CHARME GEARBEITET!
Das Problem tritt auf, wenn der Benutzer die abhängige Bibliothek mit Eclipse erstellt. Also, um die Lösung zu bekommen
Schritt 1: Löschen Sie die Bibliothek (wie das Unterstützungsbibliotheksprojekt v4 oder v13) aus Eclipse, und löschen Sie die Arbeitsbereichsquelle dauerhaft
Schritt 2: Importieren Sie die Bibliothek erneut und fügen Sie sie Ihrem Projekt hinzu
Schritt 3: Reinigen und neu erstellen
FERTIG!
Dies passiert, wenn wir in unserer App den Ordner libs mit gson jar
haben (zB: gson-2.2.4.jar). In unserer Google Play Service-Bibliothek ist bereits Gson
vorhanden.
ich habe es aus meiner App und its work fine now
entfernt.
Es wurde ein anderes Szenario gefunden, in dem dieses Problem auftritt: Das Problem bestand darin, dass der Ordner libs in den Projekteinstellungen als Quelle verwendet und daher zweimal exportiert wurde. Behoben durch Rechtsklick auf den Ordner libs -> Build Path -> Remove from Build Path
Ich habe dieses Problem in meinem Projekt durch Löschen einer Bibliothek behoben:
Reason: Ich habe ein Bibliotheksprojekt in mein Projekt aufgenommen und versehentlich nicht die vorherige Bibliothek aus meinem Projekt entfernt. Wenn ich das Projekt also ausführte, wurden dieselben Bibliotheks-Dex-Dateien zweimal generiert, als ich sie entfernte Die gleiche Bibliothek aus dem lib-Ordner meines Projekts. Der Fehler wurde behoben und der Build wurde erfolgreich erstellt. Ich hoffe, dass andere mit dem gleichen Problem konfrontiert sind.
Das Problem ist, dass "Android-Abhängigkeiten" den Verweis auf das alte AdMob-SDK auch nach folgenden Vorgängen beibehalten:
Die Lösung besteht darin, die AdMob SDK-JAR-Datei von Ihrem Computer zu löschen, nicht nur aus dem Projekt.
Das Aufteilen des Google Play-Dienstes kann Ihnen helfen: https://developers.google.com/Android/guides/setup#split
also anstatt nur Spieldienste hinzuzufügen:
compile 'com.google.Android.gms:play-services:7.5.0'
sie fügen nur das hinzu, was Sie brauchen:
// Google Maps only
compile 'com.google.Android.gms:play-services-maps:7.5.0'
gehe zu \bin\dexedLibs
und entferne alle jars der bereits entfernten Bibliotheken, dann clean
Konvertierung in Dalvik-Format fehlgeschlagen: Dex kann nicht ausgeführt werden: Mehrere Dex-Dateien definieren Lcom/google/zxing/BarcodeFormat;
Senden Sie diese Antwort an diejenigen, die diesen Fehler in Bezug auf das Barcode-Scanner-Plugin von zxing erhalten.
Löschen Sie einfach die jar-Datei im libs-Ordner. Sollte project/libs/com.google.zxing.client.Android.captureactivity.jar sein
ich hatte das gleiche Problem nicht in der Lage, Multipledex-Dateien in Android --lorg\xhtml\CSS auszuführen
ich habe 2 externe JAR-Dateien im Ordner lib - core-renderer-3043e0f89ffb2.jar gelöscht
core-Renderer-Minimal-e70d6a.jar und mein Projekt wieder gut gebaut ...
Ich hatte dieses Problem und löste es, indem ich den Pfad der. jar for change directory, aber das. jar zog die andere seite, änderte den weg und ich trat ohne problem ein
Ich hatte zwei verwandte, aber nicht identische Guaven-Bibliotheken im Verzeichnis/libs. Nachdem ich eine entfernt hatte, war das Problem behoben.
Für mich hatte ich auf eine JAR-Datei in meinem builtPath hingewiesen, die sich eigentlich nicht mehr in diesem Pfad befand!
Ich habe dieselbe Fehlermeldung beim GooglePlayService-Bibliotheksprojekt google-play-services.jar erhalten.
Wir verwenden Maven, aus diesem Grund muss ich die Bibliothek in mein lokales Maven-Repository einfügen. (MVN-Installation: Install-File -Dfile = xxx)
Jetzt befindet sich die Bibliothek zweimal im "Java Build Path" -> Libraries.
Um das Problem zu beheben, muss ich entfernen die Bibliothek aus dem Verzeichnis google-play-services_lib/libs (das Glas, das es automatisch verwendet)
Wenn Sie "com.google.Android.gms: play-services" verwenden, können Sie in der folgenden Liste hinzufügen, was Sie wirklich benötigen:
Google+ com.google.Android.gms:play-services-plus:10.0.1
Google-Konto-Login com.google.Android.gms:play-services-auth:10.0.1
Google Actions, Base Client Library com.google.Android.gms:play-services-base:10.0.1
Google Address API com.google.Android.gms:play-services-identity:10.0.1
Firebase-App-Indizierung com.google.firebase:firebase-appindexing:10.0.1
Google Analytics com.google.Android.gms:play-services-analytics:10.0.1
Google Awareness com.google.Android.gms:play-services-awareness:10.0.1
Google Cast com.google.Android.gms:play-services-cast:10.0.1
Google Cloud Messaging com.google.Android.gms:play-services-gcm:10.0.1
Google Drive com.google.Android.gms:play-services-drive:10.0.1
Google Fit com.google.Android.gms:play-services-fitness:10.0.1
Google Standort- und Aktivitätserkennung com.google.Android.gms:play-services-location:10.0.1
Google Maps com.google.Android.gms:play-services-maps:10.0.1
Google Mobile-Anzeigen com.google.Android.gms:play-services-ads:10.0.1
Google Places com.google.Android.gms:play-services-places:10.0.1
Mobile Vision com.google.Android.gms:play-services-vision:10.0.1
Google in der Nähe com.google.Android.gms:play-services-nearby:10.0.1
Google Panorama Viewer com.google.Android.gms:play-services-panorama:10.0.1
Google Play Game-Dienste com.google.Android.gms:play-services-games:10.0.1
SafetyNet com.google.Android.gms:play-services-safetynet:10.0.1
Android Pay com.google.Android.gms:play-services-wallet:10.0.1
Android Wear com.google.Android.gms:play-services-wearable:10.0.1
In meinem Fall lösche ich die ".apk" -Datei im Verzeichnis "src/com/...", bereinige das Projekt und führe es aus.
Ich hatte alle vorherigen Vorschläge ausprobiert und funktionierte nicht für mich!
Löschen Sie das generierte R-Paket aus der Bibliothek, auf die verwiesen wird. Manchmal entfernt Clean and Rebuild alte R-generierte Dateien nicht.
Stellen Sie sicher, dass sich Ihr Bin-Ordner nicht im Erstellungspfad befindet.
Dieser Fehler trat bei mir auf, als ich eine .jar-Datei importierte (eigentlich war es httpmime-4.3.jar) und versuchte, sie zu verwenden. Für mich war die Lösung einfach: Ich habe die .jar-Datei aus dem libs-Ordner entfernt und sie aus Order and Export gelöscht. Das Projekt wurde erneut ausgeführt, es hat funktioniert, also habe ich die .jar-Datei erneut hinzugefügt und es war endlich in Ordnung.