2013-04-11 2 views
13

Ich weiß, dass eine Form dieser Frage da draußen ist, aber ich kann nichts speziell finden, das zu meinem Szenario passt, also hier ist es.Konversion zum Dalvik-Format fehlgeschlagen mit Fehler 1 in Android beim Export (ADT 21)

Meine App kompiliert und läuft perfekt beim Testen im Emulator, aber wenn ich versuche, eine signierte Apk zu exportieren, bekomme ich die Conversion to Dalvik format failed with error 1. Das Eclipse-Fehlerprotokoll zeigt diesen Stack-Trace:

com.android.ide.eclipse.adt.internal.build.DexException: Conversion to Dalvik format failed with error 1 
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:751) 
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:269) 
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:296) 
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:233) 
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:218) 
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) 

ich nicht die Namenskollisionen habe, dass andere Menschen zu haben scheinen (zumindest ist es nicht zu sagen, so in dem Fehler), und ich bin ratlos, wie Warum läuft es im Emulator, aber ich kann nicht exportieren.

Ich verwende übrigens nicht ProGuard.

+0

Besuchen Sie hier für die gleiche Frage Diskussion kann es Ihnen helfen http://stackoverflow.com/questions/2680827/conversion-to-dalvik-format-failed-with-error-1-on-external-jar?rq= 1 – manish

+0

Was mir in dieser Situation hilft ist: Löschen Sie den gesamten Inhalt des Ordners "bin", säubern Sie das Projekt, führen Sie die App auf dem Testgerät aus, erstellen Sie die signierte Version erneut. – datayeah

Antwort

27

Es sieht so aus, als ob ADT 21 dem Bin einen Ordner mit dem Namen dexedLibs hinzufügt, der die Bereitstellung beschleunigen sollte, indem er JARs und Bibliotheken in vorkompilierten Code einfügt. Ich hatte zwei Versionen der Support-Bibliothek dort, also löschte ich alle Dateien in dem Ordner und baute wieder und es funktionierte. Wenn ich versuche, mit irgendwelchen Dateien dort zu bauen, schlägt der Build fehl, also muss ich sie vor jedem Export löschen. Ich benutze ActionBar Sherlock und das könnte mit dem dexedLibs-Ding in Konflikt stehen, weil es dort nicht angezeigt wird, bis der Ordner anfänglich leer ist.

Edit: Ich hatte ActionBarSherlock verwendet, wenn dieses Problem zuerst aufkam, aber kürzlich auf ActionBarCompat gewechselt haben. Seit dem Wechsel muss ich den dexedLibs-Ordner beim Exportieren nicht mehr löschen. Sieht so aus, als wäre ActionBarSherlock schuld, aber ich kann mir nicht sicher sein.

+8

Gelöst !! Gerade gelöschte 'dexedLibs'-Ordner aus' bin' Ordner vor dem Export der apk –

+0

Hatte das gleiche Problem mit ADT 22 und das hat den Job gemacht! –

+0

Vielen Dank! Das Löschen des DexedLibs-Ordners vor dem Export hat mir geholfen! –

12

Wechseln Sie zum Projekt, und deaktivieren Sie Automatisch erstellen. Dann reinigen Sie das Projekt und erstellen Sie alle. Arbeitete für mich, um signierte Anwendungspaket zu exportieren

+1

Ich löschte alles in meinem bin Ordner, gereinigt, nichts half. Das tat es aber! – Josh

+0

Ich kann Ihre Antwort nicht akzeptieren, habe ich nicht die Frage gestellt. – Josh

2

Nach vielen Versuchen gelang es mir, den Grund herauszufinden, warum dieses Problem auftritt. In der Regel wird dies durch ProGuard und speziell dessen Optimierung verursacht. Zumindest in meinem Fall hatte ich 4 korrupte Projekte mit diesem Fehler, aber nachdem ich die ProGuard-Optimierung deaktiviert hatte, wurden alle korrekt erstellt. So Kommentar in Ihrer ProGuard Config die -optimierungen und -optimizationpasses Optionen und fügen -dontoptimize

# -optimizations ... 
# -optimizationpasses 5 

-dontoptimize 

Hoffnung, das hilft.

+0

Ich habe jeden Vorschlag versucht Lösung, aber das ist die einzige, die für mich funktioniert. –

+0

Aber ist das nicht schlecht? Ich meine, ich nehme an, ich möchte meine App zu veröffentlichen. Wird nicht die optimierte Version schlechter als die optimierte Version? Dieses Problem ist mir nach mir passiert Ich habe mich gefragt, ob ProGuard einige neue Symbole verwirrte, die ich eingeführt habe ... – Antinous

Verwandte Themen