2010-04-22 2 views
15

Ich habe ein Standard-Java-Projekt, in dem ich Code geschrieben habe, um einige BBC-Radio-XML-Daten aus dem Internet zu analysieren. Das Projekt heißt BBCSchedules und die Klasse, an der ich interessiert bin, heißt BBCChannel.Externe JAR-Datei in Android-Projekt importieren

Ich versuche jetzt die BBCChannel Klasse in einer Android-Anwendung zu verwenden. Wie soll ich das machen?

Ich habe verschiedene Dinge ausprobiert, verschiedene Ratschläge im Internet befolgt, und der Ort, den ich im Moment habe, besteht darin, mein BBCSchedules-Projekt zu einer .jar-Datei zu kompilieren und diese in das Android-Projekt zu importieren die Option Pfad/Bibliothek erstellen/Externes Glas hinzufügen. Eclipse erkennt die BBCChannel-Klasse jedoch immer noch nicht und lässt die Anwendung deshalb nicht ausführen.

Ich glaube, ich etwas Dummes falsch gemacht habe, aber was ist es?

UPDATE: Ich habe die in How can I use external JARs in an Android project? aufgelisteten Schritte und verschiedene andere StackOverflow-Fragen, die ich finden kann, die damit in Zusammenhang zu stehen scheinen, aber absolut scheint nichts zu funktionieren. Irgendwelche anderen Ideen?

UPDATE: Die Diskussionen, die ich mit dem Autor der ersten Antwort unten hatte, legen nahe, dass es etwas damit zu tun hat, wie ich Eclipse verwende, um die .jar-Datei anzuhängen. Das Projekt, das er mir mit der bereits angehängten .jar-Datei schickte, funktionierte nicht. Irgendwelche anderen Ideen jemand?

+0

Sind Sie sicher, dass Sie Ihr Glas korrekt verpackt haben? Können Sie es in einem einfachen Test-Java-Programm von der Befehlszeile aus verwenden? – systempuntoout

+0

Ja, es funktioniert in einem Standard-Java-Befehlszeilenprogramm. – robintw

Antwort

24

Setzen Sie die JAR in Ihrem libs/ Verzeichnis des Projekts. Dann Build Path -> Library -> JAR hinzufügen sollte es Ihnen ermöglichen, das eine aus Ihrem Projekt auszuwählen. IIRC, das funktioniert mit Eclipse.

Wenn Sie irgendwann entscheiden, Eclipse zu löschen, genügt es, wenn Sie Ihr JAR in libs/ haben - die Build-Tools der Befehlszeile werden es automatisch übernehmen.

UPDATE: Wenn Sie die R17 oder eine neuere Version des ADT Eclipse-Plugin haben, jetzt nur Sie benötigen ein libs/ Verzeichnis hinzuzufügen und Ihre JAR setzen dort. Es wird Ihrem Build-Pfad automatisch hinzugefügt, ähnlich wie bei Befehlszeilen-Builds. Hier

+1

Danke. Ich habe die .jar zum libs/-Verzeichnis hinzugefügt und sie dann im Build-Pfad in Eclipse ausgewählt, aber Eclipse scheint die BBCChannel-Klasse immer noch nicht zu erkennen und lässt mich daher meine Anwendung nicht kompilieren und ausführen. Irgendwelche anderen Ideen? – robintw

+0

Sind Sie sicher, dass Ihre Kurse öffentlich sind? – CommonsWare

+0

Ja, meine Klasse ist öffentlich und funktioniert problemlos mit einem anderen einfachen Befehlszeilen-Testprogramm. Ich kann nicht herausfinden, warum es nicht funktioniert! Ich kann die Dateien irgendwo hochladen, wenn Sie wollen ... – robintw

1

ist, was ich tat, und es funktionierte:

  • Rechtsklick auf das Projekt
  • Build Path> hinzufügen Externe Archiv
  • Wählen Sie ein Archiv (.jar)

Die Datei "library.jar" wird zu den "referenzierten Bibliotheken" in Ihrem Projekt hinzugefügt, jedoch nicht in dem Ordner Ihres Projekts. Ich kann jetzt mein Projekt mit dieser externen Bibliothek ausführen, und ich bekomme keine Fehler, aber ich weiß nicht, ob dies der übliche Weg ist. Mein Archiv befindet sich nicht wie alle anderen im Ordner 'libs'. Du solltest versuchen, was ich getan habe.

1

Überprüfen Sie die Version von Glas und auch Ihr System Java-Version. Wenn die JAR-Version mit der Systemversion kompatibel ist, wird sie ausgeführt.

Darüber hinaus überprüft das Glas durch java -jar filename.jar auf der Eingabeaufforderung.

Danach das gleiche tun wie in der obigen Version erwähnt.

Wenn nicht, bitte geben Sie Ihr Glas und Beispielcode.

+0

Dieser arbeitete für mich, danke. Android Eclipse setzt Java auf 1,6 Compliance Level, aber ich habe ein JAR von anderen Klassen auf der Stufe 1.7 erstellt, sobald ich mein anderes Projekt auf 1.6 gesetzt und das JAR exportiert habe. –