Android - Ist es möglich, eine benutzerdefinierte Bibliothek erstellen über mehrere Anwendungen zu nutzen?

StackOverflow https://stackoverflow.com/questions/1828448

  •  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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top