Ich komme immer wieder auf dieses Problem zurück, da es scheint nicht eine saubere Lösung zu sein. Hat jemand eine gute Strategie, um Ressourcen von einem Kindprojekt in Android auszuschließen?Bedingte Ressourcen Aufnahme/Ausschluss für Android apk build
Ich habe zwei Szenarien:
1 - Base-Library-Projekt hat Lokalisierungsdateien für en, es usw.
--Child Projekt 1 alle Lokalisierungen verwendet, und alles ist gut
- -Child Projekt 2 ist nur auf Englisch lokalisiert, aber die endgültige .apk würde aufgrund der Elternressourcen eine teilweise Lokalisierung haben (obwohl ADT19 oder so Lint Regeln hinzugefügt haben, um Sie davor zu warnen/zu hindern).
Die einzige Lösung, die ich jetzt habe, ist, eine separate Elternbibliothek für die Lokalisierung zu haben und sie nur in Kindprojekt 1 aufzunehmen. Das ist ein großer Schmerz, wenn Sie viele Bibliotheksprojekte haben.
2 - Ausschluss von Build-spezifischen Ressourcen. Ich habe ein paar Bilder, die nur für meine Nook-spezifischen Builds meiner Apps benötigt werden, die durch eine Flagge ausgelöst werden. Bedingter Code funktioniert gut, aber die Ressourcen sind immer enthalten.
Ich würde es vorziehen, nicht noch ein Kind-Projekt für jede meiner Apps zu erstellen. Gibt es eine Möglichkeit, ein Build/Compile-Flag zu setzen, um bestimmte Bildressourcen auszublenden, damit sie nicht in die endgültige .apk gelangen?
Das zweite Problem mag spezifisch für mich sein, aber ich bin überrascht, dass ich keine gute Diskussion über den ersten Punkt finden kann. Gibt es keine anderen Entwickler, die nur einige Apps lokalisieren? Oder ignorieren die meisten Leute das Problem?
Ich habe gesehen, über das Hinzufügen von Dateien zu einem sprechen.apk, aber ich bin auf der Suche nach etwas mehr wie ProGuard - automatisch und in die Tools eingebaut, anstatt die endgültige .apk zu hacken. – ProjectJourneyman
Ihre Szenarien sind mit externen Build-Tools wie Ant oder Maven möglich. Beide bieten die Möglichkeit, jeden einzelnen Schritt während des Erstellungsprozesses (Kompilieren, Dex, Packen usw.) genau zu kontrollieren. Wenn Sie Maven verwenden, ist das Ausschließen von Ressourcen über [maven-resource-plugin] (http://maven.apache.org/plugins/maven-resources-plugin/resources-mojo.html) ziemlich einfach. – yorkw
Ich muss vielleicht so gehen. Ich habe auf eine sauberere (und idealerweise einfachere) Lösung gehofft. – ProjectJourneyman