Hinzufügen einer Bibliothek/JAR zu einem Eclipse-Android-Projekt

Lesezeit: 7 Minuten

Hinzufugen einer BibliothekJAR zu einem Eclipse Android Projekt
Russ Batemann

Dies ist eine zweiteilige Frage zum Hinzufügen einer Drittanbieterbibliothek (JAR) zu einem Android-Projekt in Eclipse.

Der erste Teil der Frage ist, wenn ich versuche, meinem Android-Projekt eine JAR (Bibliothek) eines Drittanbieters hinzuzufügen, bekomme ich zuerst das Problem

Fehler beim Analysieren von XML: ungebundenes Präfix

weil ich versuche, eine Klasse aus diesem JAR zu verwenden (und das Präfix irgendwie definiert haben muss). Was ist los?

Zweitens (nachdem ich das behoben habe – die Antwort finden Sie weiter unten) funktioniert meine Anwendung nicht auf Android und ich entdecke über den Debugger (LogCat), dass die Klasse, die ich zu konsumieren versuche, nicht existiert.

Verursacht durch: java.lang.ClassNotFoundException: com.github.droidfu.widgets.WebImageView…

Warum tritt dieses Problem auf dem Emulator auf, wenn ich in Eclipse keinen Kompilierungs- oder Linkerfehler erhalte?

Diese beiden Fragen sind rhetorisch, denn ich werde sie unten selbst beantworten. Andere Beiträge in diesem Forum schleichen sich an das Problem heran und an anderer Stelle gibt es Diskussionen, aber ich habe das Gefühl, dass ich dem nächsten Mann, der vorbeikommt, expliziter helfen kann.

Hinzufugen einer BibliothekJAR zu einem Eclipse Android Projekt
Russ Batemann

Nun zum fehlenden Klassenproblem.

Ich bin ein Eclipse-Java-EE-Entwickler und habe es mir seit vielen Jahren zur Gewohnheit gemacht, Bibliotheken von Drittanbietern über den „User Library“-Mechanismus in Build Path hinzuzufügen. Natürlich gibt es mindestens 3 Möglichkeiten, eine Bibliothek eines Drittanbieters hinzuzufügen, die, die ich verwende, ist meiner bescheidenen Meinung nach die eleganteste.

Dies funktioniert jedoch nicht für Android, dessen Dalvik-“JVM” keine gewöhnliche Java-kompilierte Klasse verarbeiten kann, sondern sie in ein spezielles Format konvertieren muss. Dies passiert nicht, wenn Sie eine Bibliothek so hinzufügen, wie ich es gewohnt bin.

Befolgen Sie stattdessen die (allgemein verfügbaren) Anweisungen zum Importieren der Drittanbieterbibliothek und fügen Sie sie dann mithilfe von Build Path hinzu (wodurch sie Eclipse für Kompilierungszwecke bekannt gemacht wird). Hier ist die Schritt-für-Schritt-Anleitung:

  1. Laden Sie die Bibliothek auf Ihr Host-Entwicklungssystem herunter.
  2. Einen neuen Ordner erstellen, Bibliothekenin Ihrem Eclipse/Android-Projekt.
  3. Rechtsklick Bibliotheken und wählen Sie Importieren -> Allgemein -> Dateisystem, dann Weiter, Durchsuchen Sie das Dateisystem, um das übergeordnete Verzeichnis der Bibliothek zu finden (dh wo Sie es heruntergeladen haben).
  4. Klicken Sie auf OK, klicken Sie dann im linken Bereich auf den Verzeichnisnamen (nicht das Kontrollkästchen) und aktivieren Sie dann das relevante JAR im rechten Bereich. Dadurch wird die Bibliothek (physisch) in Ihr Projekt eingefügt.
  5. Klicken Sie mit der rechten Maustaste auf Ihr Projekt, wählen Sie Erstellungspfad -> Erstellungspfad konfigurieren, klicken Sie dann auf die Registerkarte Bibliotheken, dann auf JARs hinzufügen…, navigieren Sie zu Ihrer neuen JAR in der Bibliotheken Verzeichnis und fügen Sie es hinzu. (Dies ist übrigens der Moment, in dem Ihr neues JAR für die Verwendung auf Android konvertiert wird.)

HINWEIS

Schritt 5 ist möglicherweise nicht erforderlich, wenn die Bibliothek bereits in Ihrem Erstellungspfad enthalten ist. Stellen Sie einfach sicher, dass es vorhanden ist, bevor Sie es hinzufügen.

Was Sie hier getan haben, bewirkt zwei Dinge:

  1. Enthält ein Dalvik-konvertiertes JAR in Ihrem Android-Projekt.
  2. Stellt Eclipse Java-Definitionen zur Verfügung, um beim Entwickeln (d. h. Kompilieren) des Quellcodes Ihres Projekts die Klassen von Drittanbietern zu finden.

  • Russ, Sie sollten wahrscheinlich eine andere separate Frage stellen. Diese “Antwort” sieht irgendwie seltsam aus, wenn man hier sitzt.

    – Paul Gregor

    4. September 2010 um 16:29 Uhr

  • Also habe ich Teile der Frage ein wenig umgeschrieben. Ich habe der Versuchung widerstanden, es einfach zu machen (was Sie hier vorschlagen), weil ich wirklich denke, dass beide Probleme durch den Versuch entstehen, eine Bibliothek eines Drittanbieters hinzuzufügen, und ich wette, dass jeder, der das zweite Problem hat, wahrscheinlich das hatte auch der erste. Danke.

    – Russ Batemann

    4. September 2010 um 17:24 Uhr

  • Ich wünschte, es hätte in formellen Android-Dokumenten etwas expliziteres darüber gegeben (bin noch nicht darüber gestolpert) und andere Antworten in anderen Foren gehen auf das Problem zu, aber niemals aus den Augen. Beachten Sie, dass dasselbe Problem auf BlackBerry ein riesiger Albtraum ist, in dem niemand zuverlässige Informationen zur Lösung gibt – ich bin mir nicht sicher, was ich dort tun werde.

    – Russ Batemann

    4. September 2010 um 17:26 Uhr

  • Hallo @RussBateman, ich habe die oben genannten Schritte ausprobiert und konnte das Bibliotheks-JAR erfolgreich in mein Android-Projekt einfügen, sodass die Bibliotheksklassen zur Kompilierzeit für mein Projekt zugänglich waren. Aber wenn ich das Projekt ausführe, erhalte ich eine Fehlermeldung in meiner Konsole: “Konvertierung in das Dalvik-Format fehlgeschlagen mit Fehler 1” .. und mein Projekt würde nicht gestartet!

    – Zebas

    12. April 2012 um 7:53 Uhr

  • Unter bestimmten Umständen funktioniert das nicht … Ich erinnere mich nicht genau, was ich getan habe, den libs-Ordner gelöscht, neu hinzugefügt … jetzt alles getan, was Sie gesagt haben, libs hinzufügen, das Glas importieren, zum Build-Pfad hinzufügen … . Compiler-Fehler sind weg, aber es wird immer noch eine Laufzeitausnahme angezeigt, dass die Klasse nicht gefunden wird 🙁

    – Benutzer

    2. Juni 2012 um 20:36 Uhr


Stellen Sie sicher, dass sich Ihre JAR-Dateien von Drittanbietern im Ordner „libs“ Ihres Projekts befinden und dass sie in die .apk-Datei eingefügt werden, wenn Sie Ihre Anwendung packen. Möglicherweise sehen Sie Laufzeitfehler auf dem Gerät, wenn etwas im JAR nicht unterstützt wird, aber ansonsten hatte ich damit großen Erfolg.

  • Es geht um Erfahrung, ich hatte das gleiche Problem schon einmal 🙂

    – Paul Gregor

    4. September 2010 um 16:27 Uhr

  • Danke, Sir, aber es ist scheiße zu sehen, dass der libs-Ordner die Kopie externer Jar-Dateien benötigt, die wir bereits im Maven-Repository oder irgendwo haben.

    – asg

    27. März 2013 um 19:40 Uhr

  • Leider funktioniert dies nicht mehr automatisch, Sie müssen Eclipse auch mitteilen, dass es die Bibliotheken in Paketdateien aufnehmen soll.

    – Neil Townsend

    27. August 2013 um 14:02 Uhr

  • Wann hat sich das geändert? Dies ist eine große Veränderung zu dem, was wir alle gewohnt sind.

    – Paul Gregor

    27. August 2013 um 14:37 Uhr

Einrichten eines Bibliotheksprojekts

Ein Bibliotheksprojekt ist ein Standard-Android-Projekt, sodass Sie ein neues auf die gleiche Weise wie ein neues Anwendungsprojekt erstellen können.

Wenn Sie das Bibliotheksprojekt erstellen, können Sie einen beliebigen Anwendungsnamen und ein beliebiges Paket auswählen und andere Felder nach Bedarf festlegen, wie in Abbildung 1 gezeigt.

Legen Sie als Nächstes die Eigenschaften des Projekts fest, um anzugeben, dass es sich um ein Bibliotheksprojekt handelt:

Klicken Sie im Paket-Explorer mit der rechten Maustaste auf das Bibliotheksprojekt, und wählen Sie Eigenschaften aus. Wählen Sie im Eigenschaftenfenster links die Eigenschaftengruppe „Android“ und suchen Sie rechts die Bibliothekseigenschaften. Aktivieren Sie das Kontrollkästchen „Ist Bibliothek“ und klicken Sie auf Übernehmen. Klicken Sie auf OK, um das Eigenschaftenfenster zu schließen. Das neue Projekt ist jetzt als Bibliotheksprojekt gekennzeichnet. Sie können damit beginnen, Quellcode und Ressourcen dorthin zu verschieben, wie in den folgenden Abschnitten beschrieben.

Wenn Sie die ADT-Version 22 verwenden, müssen Sie die Android-Abhängigkeiten und privaten Android-Bibliotheken auf der Registerkarte Bestellung und Export im Projekterstellungspfad überprüfen

Zuerst das Problem des fehlenden Präfixes.

Wenn Sie etwas in Ihrer Layoutdatei verwenden, das von einem Drittanbieter stammt, müssen Sie möglicherweise auch dessen Präfix verwenden, etwa „droidfu:“, das an mehreren Stellen im folgenden XML-Konstrukt vorkommt:

<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage"
          android:layout_width="75dip"
          android:layout_height="75dip"
          android:background="#CCC"
          droidfu:autoLoad="true"
          droidfu:imageUrl="http://www.android.com/images/opensourceprojec.gif"
          droidfu:progressDrawable="..."
          />

Dies kommt aus dem JAR, aber Sie müssen auch das neue “xmlns:droidfu” hinzufügen

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:droidfu="http://github.com/droidfu/schema"
      ...>

oder Sie erhalten den ungebundenen Präfixfehler. Für mich war dies ein Fehler beim Kopieren und Einfügen aller bereitgestellten Beispiele von den Seiten der Drittanbieterbibliothek.

Hinzufugen einer BibliothekJAR zu einem Eclipse Android Projekt
Gemeinschaft

Fehler beim Analysieren von XML: ungebundenes Präfix

Die Ressource „/playteddy/res“ existiert nicht.

Ich habe die beiden oben genannten Fehler und schließlich habe ich es gelöst.

Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Eigenschaften -> Java-Erstellungspfad -> googleadmobadsdk (wählen Sie es aus und legen Sie es oben ab), dann führen Sie es aus und das Problem ist gelöst. Es ist mein Laufzeitfehler behoben.

1646637191 366 Hinzufugen einer BibliothekJAR zu einem Eclipse Android Projekt
Leander

Legen Sie die Quelle in einem Ordner außerhalb Ihres Arbeitsbereichs ab. Klicken Sie mit der rechten Maustaste in den Projekt-Explorer und wählen Sie “Importieren…”

Importieren Sie das Projekt als Android-Projekt in Ihren Arbeitsbereich. Versuchen Sie, es zu erstellen, und vergewissern Sie sich, dass es als Bibliotheksprojekt gekennzeichnet ist. Stellen Sie außerdem sicher, dass es mit Google API-Unterstützung erstellt wurde, andernfalls erhalten Sie Kompilierungsfehler.

Klicken Sie dann mit der rechten Maustaste auf Ihr Hauptprojekt im Projektexplorer. Wählen Sie Eigenschaften und dann links Android aus. Klicken Sie unten im Abschnitt „Bibliothek“ auf „Hinzufügen“.

Die Mapview-Balloons-Bibliothek sollte jetzt verfügbar sein, um sie Ihrem Projekt hinzuzufügen.

963870cookie-checkHinzufügen einer Bibliothek/JAR zu einem Eclipse-Android-Projekt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy