2014-06-10 6 views
6

So laden Sie eine JAR-Datei während der Laufzeit aus dem Ordner "Assets" der Android-Anwendung. Laden von Assets Ordner ist meine Anforderung. Gibt es einen Weg dies zu tun? Bitte helfen ..So laden Sie ein JAR aus dem Ordner "Assets" zur Laufzeit

+0

Haben Sie bedeuten, dass Sie eine JAR-Datei geladen werden soll, die nicht bei der Kompilierung verbunden war, wenn Sie die apk gebaut? –

+0

JAR-Dateien sind während der Kompilierung auf Assets verfügbar. Aber ich möchte es aus Asset-Ordner während der Laufzeit je nach Bedarf laden. Nicht alle Gläser brauchten alle Zeit. Ich möchte einen Mechanismus wie das Hinzufügen von Gläsern zur Anwendung wie das Hinzufügen verschiedener Plugins implementieren – AndEngine

+0

Nicht möglich, Android mit dalvik nicht normal jvm ... Bitte nächstes Mal google um andere Option zu finden bin ziemlich sicher, dass war ein Artikel auf Android-Entwickler Blog wie zu Verwenden Sie dynamisches binäres Laden – Selvin

Antwort

5

Ich habe die Antwort. Ich füge diese Antwort hier. Weil dies für einige andere hilfreich sein kann.

Es gibt Schritte, um dies zu erreichen.

  1. Sie müssen eine Kopie Ihrer JAR-Datei in den privaten internen Speicher Ihrer Anwendung kopieren.

    1. Mit dem dx Werkzeug innerhalb der Android-Ordner, haben Sie eine classes.dex Datei mit der JAR-Datei zugeordnet zu generieren. Das dx-Tool wird an der Stelle seine /android-sdks/build-tools/19.0.1 (diese Datei von der Dalvik VM benötigt wird, kann einfach jar nicht von der Dalvik VM gelesen werden))

    2. Verwendung Der aapt Werkzeugbefehl, der sich ebenfalls am selben Ort befindet, müssen Sie classes.dex zur JAR-Datei hinzufügen.

    3. Diese JAR-Datei konnte dynamisch mit DexClassLoader geladen werden.

    4. Wenn Sie ein JAR von einer eigenen Bibliothek erstellen, müssen Sie diese Schritte (1-4) jedes Mal durchführen, wenn sich der Quellcode Ihrer Bibliothek ändert. Sie können diese Schritte also automatisieren, indem Sie ein Shell-Skript (in Mac/Linux/Ubuntu) oder Batch-Skripte (in Windows) erstellen. Sie können diese link referenzieren, um zu verstehen, wie man Shell-Skripte schreibt.

Hinweis: Eine Situation, zur Durchführung dieses Verfahrens ist, wenn es unmöglich ist, die JAR-Dateien direkt mit dem Build-Pfad des Kern Projekt hinzuzufügen und dynamisch zur Laufzeit geladen werden müssen. In normalen Fällen könnten die JAR-Dateien zum Build-Pfad hinzugefügt werden.

Bitte überprüfen Sie diesen Link für den detaillierten Code und die Implementierung.

How to load a jar file at runtime

Android: How to dynamically load classes from a JAR file?

+0

hast du es getestet? es wird nicht funktionieren, da Klassen in Jar nicht im Dalvik-Format sind ... und Ihre Links zeigen nur 1) wie man es in normalem Java macht 2) Wie man eine Klasse lädt, die bereits Teil des Frameworks ist ... – Selvin

+0

das funktioniert. und das ist was ich suche. Die JAR-Dateien sind in Assets verfügbar, bevor sie in APK erstellt werden. – AndEngine

Verwandte Themen