In meiner Android-Anwendung in Eclipse wird der folgende Fehler angezeigt.
UNERWARTETE AUSNAHME AUF TOP-LEVEL:
java.lang.IllegalArgumentException: bereits hinzugefügt: Lorg / xmlpull / v1 / XmlPullParser;
.... Die
Konvertierung in das Dalvik-Format ist mit Fehler 1 fehlgeschlagen
Dieser Fehler tritt nur auf, wenn ich meinem Projekt eine bestimmte externe JAR-Datei hinzufüge. Ich habe lange nach der möglichen Lösung gesucht, aber keine der möglichen Lösungen funktioniert.
Ich habe sogar versucht, auf Android 1.6 anstatt auf 1.5 (die aktuelle Version, die ich verwende) zu wechseln.
android
dalvik
android-sdk-1.6
Michel
quelle
quelle
Antworten:
Gehen Sie zu Projekt »Eigenschaften» Java-Erstellungspfad »Bibliotheken und entfernen Sie alle außer" Android XY "(in meinem Fall Android 1.5). OK klicken. Gehen Sie zu Projekt »Bereinigen» Bereinigen Sie die unten ausgewählten Projekte »wählen Sie Ihr Projekt aus und klicken Sie auf OK. Das sollte funktionieren.
Es ist auch möglich, dass sich eine JAR-Datei irgendwo in Ihren Projektordnern befindet (ich hatte die Admob-JAR-Datei in meinen src-Ordner kopiert) und sie dann als Java-Pfadbibliothek hinzugefügt hat. Es wird nicht im Paket-Explorer angezeigt, sodass Sie es nicht bemerken, aber es wird zweimal gezählt, was den gefürchteten Dalvik-Fehler 1 verursacht.
Ein weiterer möglicher Grund könnten Paketnamenkonflikte sein. Angenommen, Sie haben ein Paket
com.abc.xyz
und eine Klasse mit dem NamenA.java
in diesem Paket und ein anderes Bibliotheksprojekt (das zur Abhängigkeit dieses Projekts hinzugefügt wird), das dasselbe enthältcom.abc.xyz.A.java
, dann erhalten Sie genau den gleichen Fehler. Dies bedeutet, dass Sie mehrere Verweise auf dieselbe Datei habenA.java
und diese nicht ordnungsgemäß erstellen können.Auf andere Weise kann dies auftreten, wenn Sie versehentlich oder wissentlich etwas in der Klassenpfaddatei manuell bearbeiten / hinzufügen. In bestimmten Fällen können wir den Pfad android.jar manuell zur Klassenpfaddatei hinzufügen, um Java-Doc. zu generieren Code funktioniert gut. Bitte überprüfen Sie dies auch, wenn noch einer auftritt.
quelle
Ich habe das Problem gelöst.
Dies ist ein JAR-Dateikonflikt.
Es scheint, dass ich zwei JAR-Dateien auf meinem Erstellungspfad habe, die dasselbe Paket und dieselben Klassen enthalten.
smack.jar
undandroid_maps_lib-1.0.2
Das Löschen dieses Pakets aus einer der JAR-Dateien löste das Problem.
quelle
ScoreloopUI
Projekt zu meinem AndEngine-Spiel hinzugefügt habe, stören diese Gläser auch Ihre, obwohl sie sich nicht im Erstellungspfad Ihres eigenen Projekts befinden.Windows 7-Lösung:
Bestätigt, dass das Problem durch die ProGuard-Befehlszeile in der Datei
[Android SDK-Installationsverzeichnis] \ tools \ proguard \ bin \ proguard.bat verursacht wird
Bearbeiten Sie die folgende Zeile, um das Problem zu lösen:
zu
quelle
Sie können dieses Problem einfach lösen (mit Eclipse Android Developer Tools, Build: v22.0.1-685705), indem Sie das Menü> "Projekt"> "Automatisch erstellen" deaktivieren, während Sie eine (nicht) signierte Android-Anwendung exportieren. Vergessen Sie danach nicht, es wieder einzuschalten.
quelle
Wenn Sie über ADT Revision 12+ verfügen, sollten Sie Ihren Proguard von 4.4 -> 4.6 aktualisieren (wie hier beschrieben ). Außerdem sollten Sie die Datei ... \ bin \ proguard.bat in der ursprünglichen Form belassen.
Laden Sie es einfach aus dem Internet herunter und kopieren Sie den lib-Ordner aus dem heruntergeladenen Paket in:
[Android SDK-Installationsverzeichnis] \ tools \ proguard \ lib
quelle
<sdk>/tools/proguard
Verzeichnis umbenannt und das vollständig entpackte Verzeichnisproguard4.11
auf den alten Pfad verschoben . Voila! Wenn ich nur meine vorherige Stunde zurückbekommen könnte ... -_-EDIT (neue Lösung):
Es sieht so aus, als wäre die vorherige Lösung nur ein Bypass. Ich habe es endlich geschafft, das Problem dauerhaft zu beheben: In meinem Fall gab es in meinem Projekt und im Facebook-Projekt, auf das in meinem Projekt verwiesen wird, eine Nichtübereinstimmung in den Android-Support-v4-Dateien.
Ich habe diesen Fehler durch Ausführen der Lint-Prüfung gefunden (Android Tools / Run Lint: Auf häufige Fehler prüfen)
Meine vorherige Lösung:
Ich habe auf dieser Seite jede mögliche Lösung ausprobiert - nichts hat geholfen !!!
Endlich habe ich hier eine Antwort gefunden: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4
Einfache Schritte:
quelle
Hier ist ein weiteres Szenario und eine Lösung:
Wenn Sie kürzlich nach dem Aktualisieren von ADT für Eclipse auf dieses Problem stoßen:
Es scheint, dass der Grund dafür ist, dass einige frühere Versionen von ADT-verknüpften Bibliotheksprojekt-Quellordnern mit den "untergeordneten" Projekten verknüpft sind und die aktuelle ADT / Dex-Kombination nicht mehr mit dieser Lösung kompatibel ist.
BEARBEITEN: Dies wird durch einen Android Dev Blog-Eintrag bestätigt, insbesondere diesen - siehe den 8. Absatz ab.
quelle
Gehen Sie zu Projekt und deaktivieren Sie "Automatisch erstellen". Versuchen Sie dann, das Projekt zu exportieren, und der Fehler ist behoben.
quelle
Dies kann auch verursacht werden, wenn Sie
Android.jar
Ihrem Erstellungspfad eine Datei hinzugefügt haben , möglicherweise durch eine versehentliche Schnellkorrektur in Eclipse. Entfernen Sie es mit der rechten Maustaste auf Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren -> android.jar , entfernen Sie es.quelle
Das einfache Reinigen des Projekts hat bei mir jedes Mal funktioniert, wenn dieser Fehler aufgetreten ist.
quelle
Meine eigene und einzige Lösung, die ich heute nach vierstündigem Testen aller Lösungen gefunden habe, ist eine Kombination aus vielen hier angebotenen Lösungen:
Delete
Projekt von Eclipse\bin
und\gen
aus dem Projektordner.classpath
Datei im Stammprojektordnereclipse -clean
Import
ProjektProperties
>Java Build Path
>Libraries
und entfernen Sie alles andere alsAndroid XX.Y
clean
Projekt, warten Sie auf automatische Erstellung oderBuild
esIch habe jeden Schritt auf einmal und viele Kombinationen ausprobiert, aber nur die Abfolge aller Schritte auf einmal hat es geschafft! Ich hoffe, ich werde mich dem nicht wieder stellen ...
quelle
bin
Ordners hat es für mich getan.Nur für die anderen Personen, die dieses Problem immer noch haben und die oben genannten Antworten ausprobiert haben, aber immer noch den Fehler erhalten (was mein Fall war), bestand meine Lösung darin, das Projekt aus Eclipse zu löschen und es erneut zu importieren.
Dadurch wurde die Android-Bibliothek wieder zu meinen referenzierten Bibliotheken hinzugefügt. Jetzt habe ich zwei referenzierte Android-JAR-Dateien, daher habe ich eine davon gelöscht und jetzt wird sie gut kompiliert.
Lösung: Löschen Sie das Projekt aus der Eclipse-IDE, importieren Sie es erneut und suchen Sie nach den oben genannten Lösungen.
quelle
Ich bin heute selbst auf dieses Problem gestoßen. Das Reinigen und Wiederherstellen hat das Problem nicht behoben. Das Löschen und erneute Importieren des Projekts hat ebenfalls nicht geholfen.
Ich habe es schließlich auf eine schlechte Ergänzung meiner .class-Datei zurückgeführt. Ich denke, dies wurde von den Plugin-Tools hinzugefügt, als ich versuchte, ein anderes Problem zu beheben. Durch das Entfernen wurde der Build-Fehler "Konvertierung in das Dalvik-Format mit Fehler 1 fehlgeschlagen" beseitigt:
quelle
Für mich war eine zusätzliche JAR-Referenz in meinem Erstellungspfad erschienen. Ich habe dies gelöscht und es funktioniert jetzt.
quelle
Mein Problem wurde durch ADT Version 12.0 und ProGuard-Integration verursacht. Dieser Fehler ist gut dokumentiert und die Lösung ist in der Dokumentation enthalten
Die Lösung ist hier drin
ProGuard-Befehlszeile
quelle
Ich habe dieses Problem bei der Verwendung der Sherlock ActionBar-Bibliothek in meinem Projekt behoben. Sie könnten den folgenden Schritt tun, es ist Arbeit für mich.
Hoffe das wird dir helfen.
quelle
In meinem Fall liegt das Problem tatsächlich beim OpenFeint-API-Projekt. Ich habe OpenFeint als Bibliotheksprojekt hinzugefügt:
.
Es wird auch zum Erstellungspfad hinzugefügt. Die ADT-Tools 16 geben bei diesem Szenario einen Fehler aus.
Klicken Sie mit der rechten Maustaste auf Ihr Projekt und klicken Sie auf Erstellungspfad, konfigurieren Sie den Erstellungspfad und sehen Sie dann das Bild und entfernen Sie Ihr Projekt OpenFeint von hier und alles ist erledigt :)
quelle
Ich habe etwas anderes gefunden. Android verwendet das
/libs
Verzeichnis für JAR-Dateien. Ich habe den Fehler "Konvertierung in das Dalvik-Format mit Fehler 1 fehlgeschlagen" mehrmals gesehen, immer wenn ich einen Fehler in meinen JAR-Dateien gemacht habe.Jetzt habe ich Roboguice auf eine neuere Version aktualisiert, indem ich die neue JAR-Datei in das
/libs
Verzeichnis gestellt und den Klassenpfad auf die neue Version umgestellt habe . Das verursachte den Dalvik-Fehler.Als ich eine der Roboguice-JAR-Dateien aus dem
/libs
Ordner entfernte, verschwand der Fehler. Anscheinend nimmt Android alle JAR-Dateien auf/libs
, unabhängig davon, welche Sie im Java-Erstellungspfad angeben. Ich erinnere mich nicht genau, aber ich denke, Android/libs
wurde standardmäßig ab Android 4.0 (Ice Cream Sandwich, ICS) verwendet.quelle
Das Aktualisieren von Proguard auf die neueste Version hat es für mich gelöst.
C:\Program Files (x86)\Android\android-sdk\tools\proguard\
DANKE GOTT!
quelle
Im Allgemeinen scheint dieses Problem aufzutreten, wenn sich unnötige JAR-Dateien im Erstellungspfad befinden.
Ich habe dieses Problem bei der Arbeit an IntelliJ IDEA festgestellt . Für mich ist es passiert, weil ich JUnit- und Mockito- Bibliotheken hinzugefügt habe , die zur Laufzeit kompiliert wurden. Dies musste in den Moduleigenschaften auf "Testen" gesetzt werden.
quelle
Keine der zuvor vorgeschlagenen Lösungen hat bei mir funktioniert. In meinem Fall trat das Problem auf, als ich von der Referenzierung eines Bibliotheksquellcodeordners zur Verwendung der Bibliotheks-JAR-Datei wechselte. Ursprünglich gab es ein Android-Bibliotheksprojekt, das im Abschnitt Eigenschaften \ Android-Seite \ Bibliothek des Android-Anwendungsprojekts aufgeführt war, und die Bibliothek wurde auch im Projektexplorer-Baum als Link zum Quellverzeichnis der Bibliothek verglichen.
Zuerst habe ich gerade den Verzeichnislink aus dem Projektbaum gelöscht und die JAR-Bibliothek zum Erstellungspfad hinzugefügt, aber dies hat die Ausnahme verursacht.
Das richtige Verfahren war (nachdem der Erstellungspfad zurückgesetzt und der Verweis auf die Bibliotheksquelle zurückgesetzt wurde):
Entfernen Sie den Link zum Quellverzeichnis der Bibliothek ordnungsgemäß, indem Sie den Verweis tatsächlich von der Seite Eigenschaften \ Android des Anwendungsprojekts entfernen
Hinzufügen der Bibliotheks-JAR zum Erstellungspfad des Anwendungsprojekts wie gewohnt.
quelle
Keine der aufgeführten Lösungen hat bei mir funktioniert.
Hier hatte ich ein Problem:
Ich habe die externe jSoup-JAR-Datei zum Pfad meines Projekts hinzugefügt, indem ich sie zuerst in einem Quellordner namens "libs" abgelegt und dann mit der rechten Maustaste darauf geklickt habe: Build Path -> Add to Build Path. Dies warf den Dalvik-Konvertierungsfehler. Es hieß, ich hätte eine Klasse aus dieser JAR-Datei "bereits aufgenommen". Ich sah mich im Verzeichnis des Projekts um und stellte fest, dass der Ort, an dem es "bereits enthalten" war, tatsächlich das
bin
Verzeichnis war. Ich habe die JAR-Datei aus dembin
Verzeichnis gelöscht und das Projekt in Eclipse aktualisiert, und der Fehler ist verschwunden!quelle
Alle oben genannten Lösungen haben bei mir nicht funktioniert. Ich verwende keine vorkompilierte .jar. Ich verwende die LVL- und Dalvik-Fehler, die sich alle auf die Marktlizenzbibliothek beziehen.
Das Problem wurde gelöst, indem das Hauptprojekt gelöscht und erneut importiert wurde (neues Projekt aus vorhandenen Quellen erstellen).
quelle
Ich hatte das gleiche Problem und keine dieser Lösungen funktionierte. Schließlich sah ich in der Konsole, dass der Fehler auf eine doppelte Klasse zurückzuführen war (eine im vorhandenen Projekt, eine in der hinzugefügten JAR-Datei):
Überprüfen Sie also, ob Sie in Ihrem Projekt ein Glas mit doppelten Klassen hinzufügen. Wenn ja, entfernen Sie eine davon.
Es hat bei mir funktioniert.
quelle
Oft behebt das Reinigen des Projekts dieses Problem NICHT für mich.
Aber das Schließen des Projekts in Eclipse und das anschließende erneute Öffnen scheinen es in diesen Fällen zu beheben ...
quelle
Ich bin auf dieses Problem gestoßen, aber meine Lösung war zweifach. 1.) Ich musste eine Android-Zielversion unter Projekt -> Eigenschaften -> Android hinzufügen . 2.) Ich hatte nicht alle Google-Add-Ons von Drittanbietern. Klicken Sie im AVD SDK-Manager unter Verfügbare Pakete -> Add-Ons von Drittanbietern -> Google Inc . Ich habe alle SDKs heruntergeladen und das hat mein Problem gelöst.
quelle
Ich verwende Android 1.6 und hatte eine externe JAR-Datei. Was für mich funktioniert hat, war, alle Bibliotheken zu entfernen, mit der rechten Maustaste auf das Projekt zu klicken und Android Tools -> * Projekteigenschaften (die Android 1.6 wieder hinzugefügt haben) auszuwählen und dann die externe JAR-Datei wieder hinzuzufügen.
quelle
Ich bin auf dieses Problem gestoßen, weil das Android-Maven-Plugin in Eclipse anscheinend keine transitiven Referenzen und Referenzen, auf die zweimal verwiesen wurde, aus einigen Projekten (einschließlich eines Android-Bibliotheksprojekts) erkannt und diese mehr als einmal eingeschlossen hat. Ich musste Hokuspokus verwenden, um alles nur einmal aufzunehmen, obwohl Maven sich um all das kümmern soll.
Zum Beispiel hatte ich eine Kernbibliothek globalmentor-core, die auch von globalmentor-google und globalmentor-android verwendet wurde (letzteres ist eine Android-Bibliothek). Im Globalmentor-Android musste
pom.xml
ich die Abhängigkeit als "bereitgestellt" markieren und aus anderen Bibliotheken ausschließen, in denen sie transitiv enthalten war:Dann
pom.xml
musste ich in der endgültigen Anwendung die richtigen Tricks anwenden, um nur einen Einschlusspfad zuzulassen - und die Kernbibliothek nicht explizit einzuschließen :quelle
<extractDuplicates>true</extractDuplicates>
im Android-Maven-Plugin das Problem behoben wurde,mvn install
aber nicht,mvn deploy
wo ich den beschriebenen Fehler bekam ... wirklich seltsamIn meinem Fall
project-> properties-> java build path -> in der Reihenfolge und Exportregisterkarte -> deaktivieren Sie android-support-v4.jar
quelle
Reinigen Sie einfach das Projekt
Wenn dies nicht funktioniert, versuchen Sie es mit den anderen Lösungen
quelle