Ich kenne Android Library-Projekte, mit denen Sie ein Projekt mit gemeinsam genutzten Quellen erstellen können, das bei Bedarf in Android-Anwendungen abgerufen werden kann. Voraussetzung dafür ist jedoch, dass die Quelle verfügbar ist.
Ich suche nach einer Möglichkeit, eine Closed-Source-Bibliothek zu erstellen und zu verteilen, die in anderen Android-Projekten wie einer herkömmlichen JAR verwendet werden kann. Dies erfordert die Verwendung des Android-Compilers, sodass es sich nicht um eine Vanilla-Java-JAR-Datei handelt. FWIW, ich muss keine Ressourcen / Layouts in die JAR einbetten.
Ich habe http://andparcel.com/ gesehen, aber es fühlt sich wie eine Problemumgehung an, und ich würde lieber etwas verwenden, das von Google offiziell unterstützt wird. Außerdem muss ich sicherstellen, dass die von mir erstellte JAR mit der alten / neuen Version des Android SDK kompatibel ist (dh ich muss die Zielplattformversion usw. festlegen können).
Ermöglichen die neuesten Android-Toolsets das Erstellen / Verwenden von JAR-Binärdateien? Können Sie auf eine Dokumentation verweisen, wie ich das machen kann?
Antworten:
Wenn Sie ein Android Library-Projekt ohne Ressourcen erstellen, erstellt das ADT (erstmals in r16 bemerkt) eine JAR-Datei mit demselben Namen wie das Projekt im Ordner 'bin'.
quelle
myapp.jar
im/bin
Ordner. Es gibtclasses.jar
, aber das ist es nicht, oder?Android bietet keine spezielle Art von Android-JAR. Sie können Ihrem Projekt jedoch eine build.xml hinzufügen und die JAR mit ant erstellen.
Meine build.xml sieht folgendermaßen aus:
Erstellen Sie die JAR, indem Sie sie
ant jar
im Hauptordner Ihres Projekts ausführen.quelle
bin/classes
, so<jar destfile="MyAndroidLib.jar" basedir="bin/">
sollte es sein<jar destfile="MyAndroidLib.jar" basedir="bin/classes/">
Sie können ein "normales" Java-Projekt erstellen und von dort Android.jar importieren. Anschließend haben Sie Zugriff auf alle Komponenten im SDK. Anschließend können Sie Ihr Projekt als JAR exportieren ... und von Ihrer Android-App laden. Dies funktioniert großartig und es scheint ein sehr einfacher Weg zu sein, dies zu tun.
quelle
Gehen Sie einfach zu den Eigenschaften des Projekts, für das Sie jar erstellen möchten. Klicken Sie auf die Registerkarte Android. und kreuzen Sie in der Is-Bibliothek an. Jetzt können Sie die JAR-Datei im Ordner bin sehen. Verwenden Sie sie dort, wo Sie sie verwenden möchten.
quelle
Die einzige von Google offiziell unterstützte Lösung ist das Bibliotheksprojekt, für das der Quellcode verteilt werden muss. Sie können eine JAR auf normale Weise erstellen, jedoch keine Ressourcen darin einschließen oder referenzieren.
Leider denke ich, dass es auch nicht möglich ist, eine gepackte JAR in ein Bibliotheksprojekt aufzunehmen, um die Quellcode-Anforderungen zu umgehen.
quelle
In der neuesten Version von Android Studio 1.2 wurde die Erstellung der JAR-Bibliothek so einfach wie Zeigen und Klicken gemacht.
Schritte zum folgen :
Der nächste Schritt ist das Hinzufügen Ihrer Jar Library als Abhängigkeit in Ihrer App. So einfach ist das
.... Oder Sie können einfach die folgende Zeile zu Ihrer App-Gradle-Datei hinzufügen
Google bewirbt das Android-Archiv (AAR), obwohl die von JAR unterstützte Version wieder in Android Studio verfügbar ist. Um den Unterschied zwischen AAR und JAR herauszufinden, klicken Sie auf diesen Link
quelle
Versuchen Sie Folgendes: Dies funktioniert
1) Machen Sie Ihr Bibliotheksprojekt zu einem normalen Projekt, indem Sie das IsLibrary-Flag deaktivieren.
2) Führen Sie Ihr Projekt als Android-Anwendung aus. (Es wird kein Fehler angezeigt)
3) Sie finden eine .jar-Datei im Ordner bin zusammen mit .apk.
4) Geben Sie .jar, die Ihre Bibliothek verwenden möchten.
5) Sagen Sie ihnen, sie sollen nur ein externes Glas in den Erstellungspfad importieren.
Dies funktioniert gut mit allen Ressourcen. viel Glück.
quelle
Das ADT erstellt einen bin-Ordner, der alle Klassendateien für alle übereinstimmenden Quelldateien und Verzeichnisse in Ihrem Projekt enthält. Sie können mit dem Befehl jar ein jar-Archiv erstellen, das diese Klassendateien und Verzeichnisse enthält, und vermutlich Ihre Bibliothek, aber natürlich die Klassendateien Die Plattformebene wird nur für die aktuelle Ebene des Projektergebnisses ausgewählt. Sie benötigen für jede Plattformebene eine andere JAR-Datei. Das Tolle daran ist jedoch, dass die R.class-Datei in den Projektverzeichnisbaum aufgenommen wird und Sie daher Zugriff auf ihre Ressourcen haben. Ich weiß nicht, ob dies der offizielle Weg ist, Dinge in Android zu tun, aber es hat bei mir funktioniert.
quelle
In unserem Projekt erstellen wir apk (mit apkbuilder), das in / system / framework installiert ist, und fügen dieses apk im Standardklassenpfad hinzu. Für die Kompilierung von Anwendungen mit dem JAR erstellen wir eine JAR-Datei (mit JAR C).
Hinweis: Wir haben keine Ressourcen in der Bibliothek.
quelle
.jar ist nur eine .zip-Datei, die eine .class-Datei enthält (Sie können versuchen, die Erweiterung einer .jar-Datei in .zip zu ändern, um das Ergebnis anzuzeigen). Sie können ganz einfach eine JAR-Bibliothek für jeden Zweck erstellen, indem Sie eine Klassendatei komprimieren.
quelle
Schritte :
1) Öffnen Sie die Datei project.properties
2) Mehrwert
android.library=true
3) Datei speichern
4) Wählen Sie im Eclipse-Menü für das Projekt die Option " Automatisch erstellen" und dann " Reinigen"
Ergebnis: Ein brandneues Glas wird unter bin erstellt .
quelle