"Die Konvertierung in das Dalvik-Format ist mit Fehler 1 fehlgeschlagen" auf einer externen JAR


908

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.


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

4
Ich habe es versucht und es gab den gleichen Fehler. Ich habe es schließlich behoben, indem ich die Bibliothek unter Eigenschaften-> JavaBuildPath-> Projekte hinzugefügt und die Bibliothek dort hinzugefügt habe. Es heißt "Erforderliche Objekte auf dem Erstellungspfad:".

27
Dieses Problem ist für mich brutal geworden. Es ist fast genug, um die Android-Codierung aufzugeben. Keine der Lösungen funktioniert für mich. Ich muss einfach ständig versuchen, einen Fehler zu exportieren, der mit Dalvik-Fehler 1 fehlschlägt, und irgendwann wird es gelingen. Es dauert 15 bis 30 Minuten, um einen Release-Build zu erstellen. Es ist eine völlige Katastrophe.
Anthony

Wenn Sie zwei Computer in einem Arbeitsbereich mit einer Dateifreigabesoftware verwenden, wird der Arbeitsbereich-> Projekt-> bin-> com-Ordner manchmal als com 1, com 2 dupliziert. Löschen Sie einfach alles mit 1 oder 2, bereinigen Sie Ihr Projekt und Sie sind bereit gehen.
Ozan Atmar

Antworten:


826

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.xyzund eine Klasse mit dem Namen A.javain diesem Paket und ein anderes Bibliotheksprojekt (das zur Abhängigkeit dieses Projekts hinzugefügt wird), das dasselbe enthält com.abc.xyz.A.java, dann erhalten Sie genau den gleichen Fehler. Dies bedeutet, dass Sie mehrere Verweise auf dieselbe Datei haben A.javaund 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.


4
Ich hatte das gleiche Problem und die obigen Schritte von user408841 funktionierten für mich.
Arunabh Das

112
Hallo. Es wird für mich behoben, indem Sie auf "Projekt» Bereinigen »Bereinigen Sie die unten ausgewählten Projekte» wählen Sie Ihr Projekt aus und klicken Sie auf OK. " Ignorieren des 1. Bits
Kurru

79
Ich bin ziemlich verwirrend mit dieser Lösung. Wenn Sie alle JAR-Dateien und -Bibliotheken entfernen, wie werden Sie das Projekt erfolgreich kompilieren?
Cheok Yan Cheng

3
Ich fand, dass der einzige Weg, wie dies für mich funktionierte, darin bestand, ALLE PROJEKTE ZU REINIGEN! Besonders diejenigen, von denen das beleidigende Projekt abhängt.
Roy Hinkley

7
Ich bin neu in der Android-Entwicklung von .NET, und um ehrlich zu sein, verkörpert dieser Fehler meine Erfahrung damit. Ernsthaft ... was sollst du mit dieser Fehlermeldung machen? Es ist völlig bedeutungslos. "Dalvik"? Sie was? Bring mich zurück ins visuelle Studio: p
David Masters

271

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 und android_maps_lib-1.0.2

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


18
+1 - Zusammenfassend ist dies ein JAR-Dateikonflikt. Dies kann insbesondere ein Konflikt in zwei beliebigen JAR-Dateien sein. In meinem Fall bestand der Konflikt zwischen jackson-all-1.7.4.jar, jackson-core-asl-1.5.4.jar und jackson-mapper-asl-1.5.4.jar. Ich habe die beiden 1.5.4 JARs entfernt und die 1.7.4 alle verlassen.
jmort253

Wenn Sie Gläser in Bibliotheksprojekten haben, die Sie zu Ihrem eigenen Projekt hinzugefügt haben, wie ich das ScoreloopUIProjekt zu meinem AndEngine-Spiel hinzugefügt habe, stören diese Gläser auch Ihre, obwohl sie sich nicht im Erstellungspfad Ihres eigenen Projekts befinden.
pqn

1
Ich hatte android-sdk / platform / android-10 / android.jar manuell in .classpath angegeben und dann in den Projekteigenschaften auf 2.3.3 (Android 10) geändert, was zu Konflikten zwischen android.jar führte. Das Entfernen des Extra im Java Build Path hat den Trick gemacht
styler1972

2
Auf meiner Seite kam der Konflikt vom ActionbarSherlock, der bereits das Android-Support-Paket enthält, das Git zweimal enthielt.
Tobias

Nur zur Information: In meinem Fall war es aufgrund des Fehlers so, dass das unterschiedliche Android-Ziel in beiden Projekten nicht dasselbe war: android: targetSdkVersion = "xx"
Andreas Mattisson

126

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:

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

Dies hat bei mir nicht funktioniert, aber das Auskommentieren der Proguard-Zeile aus meiner Datei default.properties hat den Fehler behoben. Mein Problem scheint irgendwie mit Proguard zu tun zu haben. Beim Versuch, das Projekt zu exportieren, wurde nur "Konvertierung in das Dalvik-Format mit Fehler 1 fehlgeschlagen" angezeigt. irgendwelche Gedanken?
Ben H

Ich habe den obigen Vorschlag erneut versucht und mein LVL-Bibliotheksprojekt entfernt und erneut hinzugefügt. Jetzt funktioniert es. Ich bin mir nicht sicher, was genau das Problem behoben hat, aber es funktioniert. Danke Gott. Ich habe Stunden damit verschwendet.
Ben H

Windows Vista, und das hat bei mir funktioniert. Ich hatte zuvor versucht, den Pfad des SDK in Programm 2 zu ändern, neu zu installieren, das Projekt zu bereinigen, die Bibliotheken zu entfernen und zu reparieren usw. Also danke Noah!
Mudar

Vielen Dank Noah, das hat bei mir auch unter Windows 7 funktioniert. Der Fehler begann, nachdem ich ADT auf Version 12 aktualisiert hatte.
Kevin

Ich habe mein Problem mit Windiws 7 gelöst.
poiuytrez

94

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.


2
Dies löste es in meinem Fall. Das Problem tritt ansonsten sporadisch und ohne endgültige Ursache (z. B. schlechtes Glas oder Pfad) auf
Dirk Conrad Coetsee

Das hat mich verrückt gemacht! Eine einzige Lösung, die für mich funktioniert hat. Fragen, warum.
PrivusGuru

1
Dies löste sich für mich - andere Lösungen hätten vielleicht auch geholfen, aber diese war die letzte, bevor sie zum Laufen kam.
Pertz

Ich habe 4 Stunden damit verbracht, jeden Vorschlag durchzuarbeiten, den ich finden konnte, und bin schließlich zu diesem gekommen. Danke - es hat das Problem sofort gelöst.
Squonk

Sehr einfache Lösung, aber es funktioniert! Ersparte mir ein paar Stunden sinnlosen Kampfes mit Eclipse. Probieren Sie es aus, bevor Sie eine kompliziertere Lösung ausprobieren.
Fragon

53

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


3
Dies war mein Problem bei mehreren ADTs. Das Herunterladen und Ersetzen der Proguard-JARs funktioniert.
Mr. S

Wow, danke, das hat es für mich behoben, obwohl ich auch einige Warnungen klären musste. stackoverflow.com/q/4525661/38258
Nick Gotch

Ich habe die Proguard-Version von 4.4 auf 4.9 geändert, danach ist mein Problem immer noch nicht gelöst.
Hiren Patel

1
Ich musste dies nur selbst tun und ging von 4.7 -> 4.11 (ab sofort hier: sourceforge.net/projects/proguard/files ). Ich habe gerade das alte <sdk>/tools/proguardVerzeichnis umbenannt und das vollständig entpackte Verzeichnis proguard4.11auf den alten Pfad verschoben . Voila! Wenn ich nur meine vorherige Stunde zurückbekommen könnte ... -_-
qix

1
Vielen Dank! Dies löst mein Problem richtig. Mein Problem wird verursacht, wenn ich mein SDK vom SDK-Manager aktualisiere und der Proguard auf die ursprüngliche Version zurückgesetzt wurde, die mit API Level 11 geliefert wurde. Nachdem ich den Proguard aktualisiert habe, jar auf die neueste Version. und es funktioniert! Meine Referenz: java.dzone.com/articles/my-reminder-how-fix-conversion
mmw5610

41

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:

Gehen Sie zu Projekt -> Deaktivieren Sie Automatisch erstellen

Gehen Sie zu Projekt -> Bereinigen ... und bereinigen Sie sowohl das Bibliotheksprojekt als auch Ihr App-Projekt

Exportieren Sie Ihre App als signierte APK, während "Automatisch erstellen" noch deaktiviert ist


Vielen Dank für mich für meine cocos2dx js gearbeitet Projekt mit adt Eclipse 23
snowflakes74

Fehler: Unbekannte Option '0409' in Argument Nummer 1
Iman Marashi

30

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:

  1. Suchen Sie in Ihrem App-Projekt nach verknüpften Quellordnern, die auf Ihre Bibliotheksprojekte verweisen (sie haben Namen in der Form "LibraryName_src").
  2. Wählen Sie alle diese Projekte aus, klicken Sie mit der rechten Maustaste und wählen Sie " Erstellungspfad " -> " Aus Erstellungspfad entfernen ".
  3. Wählen Sie " Auch die Verknüpfung des Ordners mit dem Projekt aufheben " und klicken Sie auf " Ja ".
  4. Bereinigen, erstellen und implementieren Sie das Projekt erneut.

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.


1
Dies ist bei weitem die hilfreichste Antwort auf mein spezielles Problem . Ich danke dir sehr!!!
Bill The Ape

Dies ist, was ich erfolgreich verwenden konnte, nicht die hoch bewertete Antwort von user408841.
Rics

29

Gehen Sie zu Projekt und deaktivieren Sie "Automatisch erstellen". Versuchen Sie dann, das Projekt zu exportieren, und der Fehler ist behoben.


27

Dies kann auch verursacht werden, wenn Sie Android.jarIhrem 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.


25

Das einfache Reinigen des Projekts hat bei mir jedes Mal funktioniert, wenn dieser Fehler aufgetreten ist.


Das Neustarten von Eclipse + Bereinigen des Projekts + manuelle Erstellung hat bei mir funktioniert.
dodgy_coder

Die Bereinigung hat bei mir funktioniert. Wenn Sie also einen guten Debug-Build haben, den Sie auf tatsächlichen Telefonen ausgeführt haben, und dann den Export freigeben und diesen Fehler sehen, versuchen Sie zuerst, alle Projekte zu bereinigen.
Lepert

16

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
  • Löschen Sie Dateien in \binund\gen aus dem Projektordner
  • Entfernen Sie Verweise auf Bibliotheken in die .classpathDatei im Stammprojektordner
  • Starten Sie Eclipse über die Befehlszeile neu: eclipse -clean
  • Import Projekt
  • Rechtsklick auf Projekt - wählen Properties> Java Build Path>Libraries und entfernen Sie alles andere alsAndroid XX.Y
  • Schließlich cleanProjekt, warten Sie auf automatische Erstellung oderBuild es
  • Starten und jetzt funktioniert es! Zumindest für mich...

Ich 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 ...


Es gab eine Warnung von einem anonymen Benutzer, dass dies katastrophale Folgen hatte. Versuchen Sie es auf eigenes Risiko!
PaulG

es funktioniert bei mir, aber ich habe nicht getan: "eclipse -clean" und habe keine Bibliotheken entfernt.
NicoMinsk

Das Löschen des binOrdners hat es für mich getan.
Boltup_im_coding

14

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.


Vielen Dank! Das hat mir von Grund auf geholfen.
Herbert

10

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:

<classpathentry kind="lib" path="C:/dev/repository/android-sdk-windows/platforms/android-3/android.jar">
    <attributes>
        <attribute name="javadoc_location" value="file:/C:/dev/repository/android-sdk-windows/docs/reference"/>
    </attributes>
    <accessrules>
        <accessrule kind="nonaccessible" pattern="com/android/internal/**"/>
    </accessrules>


9

Für mich war eine zusätzliche JAR-Referenz in meinem Erstellungspfad erschienen. Ich habe dies gelöscht und es funktioniert jetzt.


8

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


Danke Croc, ich denke nicht, dass der Fehler sehr gut dokumentiert ist - ich habe ihn nicht gefunden, nachdem ich eine Stunde lang nach einer Lösung gesucht hatte.
Kevin

Sie schreiben wahrscheinlich - das Problem ist, dass eine einzelne Fehlermeldung zu viele Ursachen hat. Google sollte weitere Nachrichten haben, damit die Nutzer das Problem besser beschreiben können. Sie können sich trösten, dass ich zwei Tage gebraucht habe, um das Problem zu lösen, als ich darauf stieß ...
Croc

Kommentar 11 auf der verknüpften Fehlerdiskussionsseite löste das Problem hier: Setzen Sie die Build-Ausgabe auf Verbose (über Fenster> Einstellungen> Android> Build) und suchen Sie nach JAR oder Klassen, die der Compiler verwendet, aber nicht vorhanden sein sollte. Entferne sie. Erleben Sie Build ohne Probleme.
Giulio Piancastelli

8

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.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Eigenschaften aus.
  2. Ein Dialogfeld wird angezeigt. Wählen Sie im linken Menü "Java-Erstellungspfad" aus.
  3. Entfernen Sie "Android-Abhängigkeiten" und "Private Android-Bibliotheken" im rechten Bereich und klicken Sie auf "OK"
  4. Bereinigen Sie Ihr Projekt (wählen Sie Menü Projekt -> Bereinigen)
  5. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Android Tools -> Projekteigenschaften korrigieren
  6. Projekt noch einmal reinigen.
  7. Starte deinen Computer neu
  8. Öffne Eclipse und exportiere apk

Hoffe das wird dir helfen.


Ihre Fehlermeldung sollte genauer angegeben werden. Du sparst meine Zeit. Vielen Dank.
Teapeng

7

In meinem Fall liegt das Problem tatsächlich beim OpenFeint-API-Projekt. Ich habe OpenFeint als Bibliotheksprojekt hinzugefügt:

Bibliotheksprojekt]! [1]! [Bildbeschreibung hier eingeben.

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 :)

Geben Sie hier die Bildbeschreibung ein


7

Ich habe etwas anderes gefunden. Android verwendet das /libsVerzeichnis 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 /libsVerzeichnis gestellt und den Klassenpfad auf die neue Version umgestellt habe . Das verursachte den Dalvik-Fehler.

Als ich eine der Roboguice-JAR-Dateien aus dem /libsOrdner 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 /libswurde standardmäßig ab Android 4.0 (Ice Cream Sandwich, ICS) verwendet.


7

Das Aktualisieren von Proguard auf die neueste Version hat es für mich gelöst.

  • Mein Proguard-Pfad war C:\Program Files (x86)\Android\android-sdk\tools\proguard\
  • Ich habe die neue Version von hier heruntergeladen
  • und ersetzte sowohl bin als auch lib Ordner

DANKE GOTT!


7

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.


Oh, danke für die Erwähnung "Im Allgemeinen scheint es, dass dieses Problem auftritt, wenn Gläser im Erstellungspfad nicht erforderlich sind." Nach dem Löschen der unnötigen JAR-Dateien ist der Fehler verschwunden. :)
Surendran

6

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.


6

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 binVerzeichnis war. Ich habe die JAR-Datei aus dem binVerzeichnis gelöscht und das Projekt in Eclipse aktualisiert, und der Fehler ist verschwunden!


5

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).


5

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):

java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

Ü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.



5

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 ...


1
Das gleiche gilt für mich: Wenn Sie Eclipse schließen und erneut starten, wird dies normalerweise gelöst. Dann bekomme ich es versucht, aber ich kann keinen zweiten Export machen, ich muss neu starten.
Ted

5

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.


Meine Lösung war so ziemlich die gleiche wie die von @THE_DOM. Klicken Sie mit der rechten Maustaste auf das Projekt, wählen Sie Android Tools und dann Kompatibilitätsbibliothek hinzufügen. Dadurch werden diese "Add-Ons von Drittanbietern" heruntergeladen, wenn Sie sie nicht haben (THE_DOMs Lösung), aber sie werden auch Ihrem Projekt hinzugefügt. Ob diese Lösung nur ein Placebo ist oder nicht, bleibt abzuwarten. :)
Chris

5

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.


5

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.xmlich die Abhängigkeit als "bereitgestellt" markieren und aus anderen Bibliotheken ausschließen, in denen sie transitiv enthalten war:

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-core</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!-- android-maven-plugin can't seem to automatically keep this from being
             included twice; it must therefore be included manually (either explicitly
             or transitively) in dependent projects -->
        <scope>provided</scope>
    </dependency>

Dann pom.xmlmusste ich in der endgültigen Anwendung die richtigen Tricks anwenden, um nur einen Einschlusspfad zuzulassen - und die Kernbibliothek nicht explizit einzuschließen :

    <!-- android-maven-plugin can't seem to automatically keep this from being
        included twice -->
    <!-- <dependency> -->
    <!-- <groupId>com.globalmentor</groupId> -->
    <!-- <artifactId>globalmentor-core</artifactId> -->
    <!-- <version>1.0-SNAPSHOT</version> -->
    <!-- </dependency> -->

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-google</artifactId>
        <version>1.0-SNAPSHOT</version>
        <exclusions>
            <!-- android-maven-plugin can't seem to automatically keep this from
                being included twice -->
            <exclusion>
                <groupId>com.globalmentor</groupId>
                <artifactId>globalmentor-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-android</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

Seltsam für mich war, dass <extractDuplicates>true</extractDuplicates>im Android-Maven-Plugin das Problem behoben wurde, mvn installaber nicht, mvn deploywo ich den beschriebenen Fehler bekam ... wirklich seltsam
Karussell

5

In meinem Fall

project-> properties-> java build path -> in der Reihenfolge und Exportregisterkarte -> deaktivieren Sie android-support-v4.jar


5

Reinigen Sie einfach das Projekt

Wenn dies nicht funktioniert, versuchen Sie es mit den anderen Lösungen


plus 1 für die einfache Lösung
Shylendra Madda

Außerdem muss ich Eclipse neu starten.
Dino Tw
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.