Frage

Dies ist eine zweiteilige Frage über eine Drittanbieter-Bibliothek hinzugefügt (JAR) zu einem Android-Projekt in Eclipse.

Der erste Teil der Frage ist, wenn ich versuche, einen Drittanbieter-JAR (Bibliothek) auf mein Android-Projekt hinzuzufügen ich zuerst das Problem der

  

Fehler bei der Analyse von XML: Nicht konsolidiert Präfix

, weil ich versuche, eine Klasse von dieser JAR zu verwenden (und muß das Präfix irgendwie definiert). Was ist los?

Zweitens (nach dem Fixieren, dass - die Antwort unten angegeben ist), wird meine Anwendung nicht die Arbeit an Android und entdecke ich über den Debugger (LogCat), dass die Klasse ich versucht bin zu konsumieren existiert nicht <. / p>

  

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

Warum, wenn ich keine Kompilierung oder Linker-Fehler in Eclipse, hat es dieses Problem auf dem Emulator?

Diese beiden Fragen rhetorische denn ich werde sie mich unten beantworten. Weitere Beiträge in diesem Forum Kriechen bis zu dem Problem und anderswo gibt es Diskussionen, aber ich fühle, dass ich ausdrücklich hilfreich mehr sein kann für den nächsten Mann zu kommen.

War es hilfreich?

Lösung

Jetzt für das fehlende Klasse Problem.

Ich bin ein Eclipse-Java EE-Entwickler und sind seit vielen Jahren in der Gewohnheit gewesen über die „User Library“ Mechanismus in Build Path Bibliotheken von Drittanbietern hinzuzufügen. Natürlich gibt es mindestens drei Möglichkeiten, eine Drittanbieter-Bibliothek hinzufügen, die ich benutze ist die eleganteste, in meiner bescheidenen Meinung nach.

Das ist nicht Arbeit wird jedoch für Android, deren Dalvik „JVM“ kann nicht eine gewöhnliche Java-kompilierten Klasse behandeln, aber muss es in ein spezielles Format konvertiert. Dies geschieht nicht, wenn Sie eine Bibliothek in der Art und Weise hinzufügen, ich bin gewohnt, es zu tun.

Befolgen Sie stattdessen die (allgemein verfügbar) Anweisungen für die Drittanbieter-Bibliothek importieren, dann das Hinzufügen es Build Path (den es zu Eclipse Kompilierung Zwecke bekannt macht). Hier ist der Schritt-für-Schritt:

  1. Laden Sie die Bibliothek an den Host Entwicklungssystem.
  2. Erstellen
  3. Sie einen neuen Ordner, libs in Ihre Eclipse / Android-Projekt.
  4. Rechtsklick auf libs und wählen Import -> Allgemein -> Dateisystem, Als nächstes gehen Sie dann im Dateisystem die Bibliothek Eltern finden Verzeichnis (d.h .: wo Sie heruntergeladen es).
  5. Klicken Sie auf OK, dann klicken Sie auf die Verzeichnisname (nicht das Kontrollkästchen) in Im linken Fensterbereich überprüfen, dann die relevant JAR im rechten Fensterbereich. Dies setzt die Bibliothek in Ihr Projekt (Physisch).
  6. Rechtsklick auf das Projekt, wählen Build Path -> Konfigurieren des Aufbaus Path, klicken Sie auf die Registerkarte Bibliotheken, In JAR-Dateien dann ..., navigieren Sie zu Ihrem neuer JAR in dem libs Verzeichnis und hinzuzufügen. (Das ist übrigens ist der Moment, an dem Sie Ihre neue JAR für den Einsatz auf Android umgewandelt wird.)

Hinweis

Schritt 5 kann nicht erforderlich sein, wenn die lib bereits in Ihrem Build-Pfad enthalten ist. Einfach sicher, dass seine Existenz, bevor sie hinzugefügt wird.

Was haben Sie hier gemacht werden zwei Dinge erreicht:

  1. Enthält ein Dalvik-konvertierte JAR in Ihrem Android-Projekt.
  2. macht Java-Definitionen verfügbar zu Eclipse, um das zu finden, Klassen von Drittanbietern bei der Entwicklung (das heißt, kompiliert) Ihr Projekt Quellcode.

Andere Tipps

Stellen Sie sicher, dass Ihre 3rd-Party-Gläser in Ihren Projekten „Libs“ -Ordner sind, und sie werden in der APK genommen werden, wenn Sie Ihre Anwendung verpacken. Sie können Laufzeitfehler auf dem Gerät sehen, ob etwas in dem Glas nicht unterstützt wird, aber anders als das ich mit diesem großen Erfolg gehabt habe.

ein Bibliotheksprojekt einrichten

Ein Bibliotheksprojekt ist ein Standard-Android-Projekt, so dass Sie einen neuen in der gleichen Art und Weise erstellen können, wie Sie es ein neues Anwendungsprojekt.

Wenn Sie das Bibliotheksprojekt erstellen, können Sie wählen Sie eine beliebige Anwendungsnamen, Paket und setzen Sie andere Felder nach Bedarf, wie in Abbildung 1 dargestellt.

Als nächstes legen Sie die Eigenschaften des Projekts, um anzuzeigen, dass es sich um eine Bibliothek-Projekt ist:

Im Package Explorer mit der rechten Maustaste auf die Bibliothek-Projekt und wählen Sie Eigenschaften. Im Fenster Eigenschaften wählen Sie die „Android“ Eigenschaften Gruppe auf der linken und die Bibliothek Eigenschaften im rechten lokalisieren. Wählen Sie das „ist Library“ Checkbox und klicken Sie auf Übernehmen. Klicken Sie auf OK, um das Eigenschaftenfenster zu schließen. Das neue Projekt wird nun als Bibliotheksprojekt markiert. Sie beginnen können, Quellcode und Ressourcen in sie zu bewegen, wie in den folgenden Abschnitten beschrieben.

Wenn Sie die ADT Version 22 verwenden, müssen Sie die Android-Abhängigkeiten und android private Bibliotheken in der Reihenfolge & Export Registerkarte im Projekterstellungspfad überprüfen

Zuerst wird das Problem des fehlenden Präfix.

Wenn Sie etwas in Ihrer Layout-Datei verbrauchen, die von einem Dritten stammen, müssen Sie dessen Präfix verbrauchen als gut, so etwas wie „droidfu:“, die unten an mehreren Stellen in dem XML-Konstrukt auftritt:

<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="..."
          />

Das kommt von der JAR-out, aber Sie werden auch den neuen „xmlns: droidfu“ hinzufügen müssen

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

oder Sie erhalten den ungebundenen Präfix Fehler. Für mich war dies ein Fehler zu kopieren und alle des mitgelieferten Beispiels aus der Fremdbibliothek Seiten einfügen.

  

Fehler bei der Analyse von XML: Nicht konsolidiert Präfix

     

Resource '/ playteddy / res' existiert nicht.

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

Right Ihr Projekt klicken -> Eigenschaften -> Java-Build-Pfad -> googleadmobadsdk (wählen und legt es oben), dann Sie laufen und Problem gelöst. Es ist mein Laufzeitfehler behoben.

Legen Sie die Quelle in einem Ordner außerhalb yourt Arbeitsplatz. Rechtsklicken Sie im Projekt-Explorer, und wählen Sie "Import ..."

Importieren Sie das Projekt in Ihrem Arbeitsbereich als Android-Projekt. Versuchen Sie es zu bauen, und stellen Sie sicher, dass es als ein Bibliotheksprojekt markiert. Auch stellen Sie sicher, es ist Build mit Google-API-Unterstützung, wenn nicht, werden Sie Kompilierungsfehler erhalten.

Dann in der rechten Maustaste auf Ihrem Hauptprojekt im Projekt-Explorer. Wählen Sie Eigenschaften, und wählen Sie Android auf der linken Seite. In der Bibliothek Abschnitt weiter unten, klicken Sie auf "Hinzufügen" ..

Die mapview-Ballons Bibliothek sollte jetzt verfügbar sein, um ein Projekt hinzuzufügen ..

Zur Build-Pfad in Eclipse, klicken Sie dann um und Export, dann überprüfen Sie die Bibliothek / jar, und klicken Sie dann auf die Schaltfläche oben an die Spitze der Liste verschieben es zunächst zu kompilieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top