924 Stimmen

"Konvertierung ins Dalvik-Format mit Fehler 1 fehlgeschlagen" bei externem JAR

In meiner Android-Anwendung in Eclipse erhalte ich den folgenden Fehler.

UNERWARTETE TOP-LEVEL-AUSNAHME:
java.lang.IllegalArgumentException: bereits hinzugefügt: Lorg/xmlpull/v1/XmlPullParser;
....
Konvertierung ins Dalvik-Format mit Fehler 1 fehlgeschlagen

Dieser Fehler tritt nur auf, wenn ich eine bestimmte externe JAR-Datei zu meinem Projekt hinzufüge. Ich habe lange nach einer möglichen Lösung gesucht, aber keine von ihnen funktioniert.

Ich habe sogar versucht, auf Android 1.6 statt 1.5 (die aktuelle Version, die ich verwende) zu wechseln.

0 Stimmen

Dieser Artikel kann Ihnen helfen, diesen Fehler zu beheben, falls Sie ein Bibliotheksprojekt in Ihrem Arbeitsbereich verwenden.

4 Stimmen

Ich habe dies versucht, und es gab den gleichen Fehler. Ich habe es schließlich behoben, indem ich die Bibliothek unter Eigenschaften->JavaBuildPath->Projekte hinzugefügt habe und die Bibliothek dort hinzugefügt habe. Sie heißt "Required objects on the build path:".

27 Stimmen

Dieses Problem ist für mich brutal geworden. Es ist fast genug, um die Android-Codierung aufzugeben. Keine der Lösungen funktioniert bei mir. Ich muss einfach immer wieder versuchen zu exportieren, was mit dem Dalvik-Fehler 1 fehlschlägt, bis es schließlich gelingt. Es dauert 15-30 Minuten, um einen Release-Build zu erstellen. Es ist ein komplettes Desaster.

824voto

user408841 Punkte 2147

Gehen Sie zu Projekt " Eigenschaften " Java Build Path " Bibliotheken und entfernen Sie alle außer "Android X.Y" (in meinem Fall Android 1.5). Klicken Sie auf OK. Gehen Sie zu Project " Clean " Clean projects selected below " wählen Sie Ihr Projekt aus und klicken Sie auf OK. Das sollte funktionieren.

Es ist auch möglich, dass Sie eine JAR-Datei irgendwo in Ihren Projektordnern haben (ich hatte die Admob-JAR-Datei in meinen src-Ordner kopiert) und sie DANN als Java Path Library hinzugefügt. Sie wird im Paket-Explorer nicht angezeigt, so dass man sie nicht bemerkt, aber sie wird doppelt gezählt und verursacht den gefürchteten Dalvik-Fehler 1.

Ein weiterer möglicher Grund könnten Konflikte bei den Paketnamen sein. Angenommen, Sie haben ein Paket com.abc.xyz und eine Klasse namens A.java innerhalb dieses Pakets und ein weiteres Bibliotheksprojekt (das zur Abhängigkeit dieses Projekts hinzugefügt wird), das die gleiche com.abc.xyz.A.java dann werden Sie genau den gleichen Fehler erhalten. Dies bedeutet, dass Sie mehrere Verweise auf dieselbe Datei haben A.java und kann es nicht richtig bauen.

In anderen Möglichkeiten kann dies aufgetreten, wenn Sie versehentlich oder wissentlich bearbeiten / fügen Sie etwas in der Klasse Pfad-Datei manuell. In bestimmten Fällen können wir Android.jar Pfad manuell auf Klassenpfad-Datei für die Generierung von Java doc.On Entfernen der, dass nach javadoc generierten Code funktioniert fine.Please überprüfen Sie dies auch, wenn jemand noch auftritt.

275voto

Michel Punkte 8820

Ich habe das Problem gelöst.

Es handelt sich um einen JAR-Dateikonflikt.

Es scheint, dass ich zwei JAR-Dateien auf meinem Buildpfad habe, die das gleiche Paket und die gleichen Klassen enthalten.

smack.jar y android_maps_lib-1.0.2

Das Löschen dieses Pakets aus einer der JAR-Dateien löste das Problem.

127voto

Noah Punkte 14800

Windows 7 Lösung:

Bestätigt, dass das Problem durch die ProGuard-Befehlszeile in der Datei verursacht wird
[Android SDK-Installationsverzeichnis] \tools\proguard\bin\proguard.bat

Bearbeiten Sie die folgende Zeile, um das Problem zu lösen:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

zu

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

94voto

Ton Snoei Punkte 2091

Sie können dieses Problem leicht lösen (mit Eclipse Android Developer Tools, Build: v22.0.1-685705), indem Sie beim Exportieren einer (nicht) signierten Android-Anwendung Menü > "Projekt" > "Automatisch erstellen" deaktivieren. Vergessen Sie danach nicht, es wieder einzuschalten.

53voto

Kocus Punkte 1615

Wenn Sie ADT Revision 12+ haben, sollten Sie Ihr proguard von 4.4 -> 4.6 aktualisieren (wie beschrieben ici ). Außerdem sollten Sie ... \bin\proguard.bat Datei in ihrer ursprünglichen Form.

Laden Sie es einfach aus dem Internet herunter und kopieren Sie den Ordner "lib" aus dem heruntergeladenen Paket in die Datei :

[Android SDK-Installationsverzeichnis] \tools\proguard\lib

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X