Ich habe ein Android-Projekt erstellt und meinem Projekt eine externe JAR (hessian-4.0.1.jar) hinzugefügt. Ich habe dann die JAR zum Erstellungspfad hinzugefügt und sie in Reihenfolge und Export abgehakt.
Order and Export wird anscheinend ignoriert und alle Klassen aus der externen JAR fehlen zur Laufzeit.
Gibt es einen Trick, um die benötigten Klassen aus einer externen JAR beim Erstellen einer Android-Anwendung mit dem Eclipse-Plugin richtig einzuschließen? Ich möchte keine Ameise oder Maven verwenden.
android
eclipse
build.gradle
class-library
AndroidSmoker74
quelle
quelle
Antworten:
Für Eclipse
Eine gute Möglichkeit, Ihrem Android-Projekt oder einem Java-Projekt externe JARs hinzuzufügen, ist:
libs
im Stammordner Ihres Projekts aufgerufen wirdlibs
OrdnerKlicken Sie nun mit der rechten Maustaste auf die Jar-Datei und wählen Sie dann Erstellungspfad > Zum Erstellungspfad hinzufügen. Daraufhin wird in Ihrem Projekt ein Ordner mit dem Namen "Referenzierte Bibliotheken" erstellt
Auf diese Weise verlieren Sie nicht Ihre Bibliotheken , auf die auf Ihrer Festplatte verwiesen wird, wenn Sie Ihr Projekt auf einen anderen Computer übertragen.
Für Android Studio
Bitte beachten Sie: Wenn Sie Bibliotheken von Drittanbietern verwenden, ist es besser, transitive Abhängigkeiten zu verwenden, bei denen das Gradle-Skript die JAR und die Abhängigkeits-JAR automatisch herunterlädt, wenn das Gradle-Skript ausgeführt wird.
Beispiel: Kompilieren Sie 'com.google.android.gms: play-services-ads: 9.4.0'.
Lesen Sie mehr über Gradle Dependency Mangement
quelle
libs
(anstelle vonlib
)libs/
. Ändern Sie den Erstellungspfad nicht manuell.Ja, du kannst es benutzen. Hier ist, wie:
Dieses Video kann hilfreich sein, wenn Sie Probleme haben.
quelle
Ich verwende derzeit SDK 20.0.3 und keine der vorherigen Lösungen hat für mich funktioniert.
Der Grund, warum hessdroid dort funktioniert, wo hess fehlgeschlagen ist, liegt darin, dass die beiden JAR-Dateien Java enthalten, das für verschiedene virtuelle Maschinen kompiliert wurde. Es wird nicht garantiert, dass der vom Java-Compiler erstellte Bytecode auf der virtuellen Dalvik-Maschine ausgeführt wird. Es wird nicht garantiert, dass der vom Android-Compiler erstellte Bytecode auf der virtuellen Java-Maschine ausgeführt wird.
In meinem Fall hatte ich Zugriff auf den Quellcode und konnte mit der hier beschriebenen Methode eine Android-JAR-Datei dafür erstellen: https://stackoverflow.com/a/13144382/545064
quelle
Ich weiß, dass das OP seine Frage mit Bezug auf das Eclipse-Plugin beendet, aber ich bin hier mit einer Suche angekommen, bei der Eclipse nicht angegeben wurde. Also hier geht es für Android Studio:
jar
Datei zu Libs Verzeichnis (wie Kopieren / Einfügen)jar
Datei und wählen Sie "Als Bibliothek hinzufügen ...".Das ist es!
quelle
Es stellte sich heraus, dass ich auf meinem Stack-Trace nicht gut genug ausgesehen habe. Das Problem ist nicht, dass die externe JAR nicht enthalten ist.
Das Problem ist, dass auf der Android-Plattform javax.naming. * Und viele andere Pakete fehlen, von denen die externe JAR ebenfalls abhängig ist.
Das Hinzufügen externer JAR-Dateien und das Festlegen von Reihenfolge und Export in Eclipse funktioniert bei Android-Projekten wie erwartet.
quelle
Gehe zum aktuellen Projekt
Anschließend wird es in Ihrem aktuellen Projekt zur Datei mit den referenzierten Bibliotheken hinzugefügt.
quelle
Die Java-API von Android unterstützt javax.naming. * Und viele andere javax. * -Materialien nicht. Sie müssen die Abhängigkeiten als separate Gläser einfügen.
quelle
Wenn Sie Android Studio verwenden, gehen Sie wie folgt vor (ich habe die Antwort von @Vinayak Bs kopiert und geändert):
quelle
in Android Studio bei Verwendung von Gradle
füge dies zu build.gradle hinzu
und fügen Sie die JAR-Datei zum Ordner libs hinzu
quelle
Wenn Sie das Gradle- Build-System verwenden, gehen Sie folgendermaßen vor:
Legen Sie
jar
Dateien in den entsprechendenlibs
Ordner Ihrer Android-App. Sie werden es in der Regel findenProject
>app
>libs
. Wenn einlibs
Ordner fehlt, erstellen Sie einen.Fügen Sie dies Ihrer
build.gradle
Datei hinzuapp
. (Nicht auf IhreProject
‚sbuild.gradle
)Dies schließt alle Ihre
jar
imlibs
Ordner verfügbaren Dateien ein .Wenn Sie nicht alle
jar
Dateien einschließen möchten, können Sie sie einzeln hinzufügen.compile fileTree(dir: 'libs', include: 'file.jar')
quelle
Erstellen Sie einen Ordner (wie lib) in Ihrem Projekt und kopieren Sie Ihr JAR in diesen Ordner . Gehen Sie nun zum Konfigurieren des Erstellungspfads, indem Sie mit der rechten Maustaste auf das Projekt klicken und dort im Erstellungspfad auswählen
'Glas hinzufügen' Navigieren Sie zu dem Ordner, den Sie erstellt haben, und wählen Sie das Glas aus.
quelle
Das Kopieren der JAR-Datei in den Ordner des Android-Projekts ist nicht immer möglich.
Insbesondere, wenn es sich um eine Ausgabe eines anderen Projekts in Ihrem Arbeitsbereich handelt und es ständig aktualisiert wird.
Um dies zu lösen, müssen Sie das JAR als verknüpfte Datei zu Ihrem Projekt hinzufügen, anstatt es zu importieren (wodurch es lokal kopiert wird).
Wählen Sie in der Benutzeroberfläche:
Projekt -> Importieren -> Dateisystem -> yourjar.jar -> (Optionsbereich) Erweitert -> Link im Arbeitsbereich erstellen.
Der Link wird in der Projektdatei gespeichert:
PARENT-5-PROJECT_LOC
bedeutet relativ zur Projektdatei, 5 Verzeichnisse höher (../../../../../).Fügen Sie es dann zu den Bibliotheken hinzu:
Projekt -> Eigenschaften -> Java-Erstellungspfad -> Bibliotheken -> Jar hinzufügen -> yourjar.jar
Wählen Sie im selben Fenster die Registerkarte Bestellen und Exportieren und markieren Sie Ihr Glas, damit es dem apk hinzugefügt wird.
quelle