Android - Ist es möglich, eine benutzerdefinierte Bibliothek erstellen über mehrere Anwendungen zu nutzen?
-
11-09-2019 - |
Frage
Ist es möglich, eine eigene Bibliothek in Android (mit einer eigenen Layout Ressourcen) für den Einsatz über mehr Android-Anwendungen zu erstellen?
-
habe ich eine regelmäßige * .jar-Datei, aber wenn ich versuche, meine Ansichten zu erstellen / style dynamisch die meisten Eigenschaften nicht funktionieren. Auch Referenzierung einfache Stile aus der android.jar Datei wie android.attr.listSeparatorTextViewStyle hat nicht funktioniert.
-
Ich habe ein Android-Projekt ohne Aktivität, seine eigene Ressourcendateien mit und dann dieses Projekt von einem anderen Android-Projekt verweist in seinem Build-Pfad zu verwenden. Alles scheint gut zu funktionieren, aber der Emulator stürzt immer wieder ab (ohne aussagekräftige Fehlermeldung in der LogCat ), wenn ich versuche, das Projekt auszuführen.
Bin ich etwas fehlt?
Lösung
Nun, ich denke es eine Möglichkeit, es zu tun ist (obwohl ich es nicht selbst versuchte), aber es erfordert die Benutzer Ihrer Bibliothek ihre APKs manuell über aapt
bauen zu müssen.
Das Problem ist folgendes: Die JAR Sie exportieren enthält die R
Klassendatei, die die Ressourcen-IDs Ihrer Bibliothek hält. So kann jede Anwendung diese IDs zugreifen, indem Sie einfach Ihre JAR-Verknüpfung. Allerdings ist das nicht genug, da standardmäßig nur Ressourcen in dem res / Ordnern des App mit dem APK gebündelt. Daher müssen Sie die APK selbst mit aapt schaffen, es zu sagen, auch alle Ressourcen aus Ihrer Bibliothek. Überprüfen Sie die aapt Werkzeug-Hilfe für weitere Informationen.
Da dies bedeutet, dass Benutzer Ihrer Bibliothek haben einen manuellen Build-Prozess (oder zumindest modifizieren) einzuführen, macht es für eine schlechte Erfahrung.
Andere Tipps
Könnte spät sein, um zu antworten, aber fand es, was interessant ist. ein Bibliotheksprojekt einrichten
Ein Android-Bibliothek-Projekt ist ein Entwicklungsprojekt, das gemeinsam genutzte hält Android-Quellcode und Ressourcen. Andere Android-Anwendung Projekte können Referenz des Bibliotheksprojektes und an Bauzeit, sind seine kompilierte Quellen in ihren APK-Dateien. Mehrere Anwendungsprojekte kann die Referenz gleiche Bibliotheksprojekt und jede einzelne Anwendungsprojekt kann Referenz mehrere Bibliotheksprojekte.
Wenn Sie Quellcode und Ressourcen die gemeinsam sind multiple Anwendungsprojekte, können Sie bewegen sie zu einem Bibliotheksprojekt, so dass es ist leichter zu pflegen über Anwendungen und Versionen. Hier sind einige gemeinsame Szenarien, in denen Sie nutzen Bibliotheksprojekte könnten:
Ist es möglich, eine eigene erstellen Bibliothek in Android (mit seinem eigenen Layout Ressourcen) für den Einsatz in mehrere Android-Anwendungen?
Nein. JAR-Dateien können keine Ressourcen haben. Sie können Code auf diese Weise teilen, aber Ressourcen in den Anwendungen befinden sich die JAR-Dateien wiederverwenden.
Auch Referenzierung einfache Stile aus die android.jar Datei wie android.attr.listSeparatorTextViewStyle hat nicht funktioniert.
Stellen Sie sicher, dass Sie Ihre JAR gegen android.jar verknüpfen. Sie können viele Beispiele dafür in den CWAC Komponenten auf meiner Github Seite .
Ist das noch wahr mit R21? Ich bin in der Lage ein Bibliotheksprojekt in JAR-Datei zu exportieren und in anderen Kundenprojekten erfolgreich eingesetzt, sowohl Code als weise und den Zugriff auf Vermögenswerte Datei wiese.
http://developer.android.com/tools/projects/index.html hat immer noch die folgende Aussage, die nicht mehr wahr scheint:
Sie können kein Bibliotheksprojekt zu einem JAR-Export eine Bibliotheksdatei kann nicht als Binärdatei (wie eine JAR-Datei) verteilt. Dies wird hinzugefügt in einer zukünftigen Version des SDK-Tools.