Wciąż wracam do tego problemu, ponieważ nie wydaje się, że jest to czyste rozwiązanie. Czy ktoś ma dobrą strategię, aby wykluczyć zasoby z projektu podrzędnego w systemie Android?Warunkowe włączenie/wyłączenie zasobów dla apk z Androidem
Mam dwa scenariusze:
1 - projekt biblioteki bazowa pliki lokalizacyjne dla en, es, itp
--Child projekt 1 wykorzystuje wszystkie lokalizacje, a wszystko jest dobre
- -Dziecki projekt 2 jest zlokalizowany tylko w języku angielskim, ale ostateczny .apk miałby częściową lokalizację z powodu zasobów nadrzędnych (chociaż ADT19 lub tak dodał reguły Lint, aby ostrzec/uniemożliwić zrobienie tego).
Jedyne rozwiązanie, jakie mam teraz, to posiadanie oddzielnej biblioteki nadrzędnej dla lokalizacji i uwzględnianie go tylko w projekcie podrzędnym 1. Jest to duży problem, jeśli masz dużo projektów bibliotecznych.
2 - Wykluczenie zasobów związanych z budową. Mam kilka zdjęć, które są potrzebne tylko dla moich specyficznych dla Nooków wersji moich aplikacji, które są uruchamiane przez flagę. Kod warunkowy działa świetnie, ale zasoby są zawsze uwzględniane.
Wolałbym nie tworzyć kolejnego projektu potomnego dla KAŻDEGO z moich aplikacji. Czy jest jakiś sposób, aby ustawić flagę kompilacji/kompilacji, aby przycinać określone zasoby obrazu, aby nie dostały się do ostatecznego pliku .apk?
Drugi problem może być specyficzny dla mnie, ale jestem zaskoczony, że nie mogę znaleźć żadnej dobrej dyskusji na temat pierwszego punktu. Czy żaden inny programista nie lokalizuje tylko niektórych aplikacji? A może większość ludzi po prostu ignoruje ten problem?
Widziałem rozmowę o dodawaniu plików do.apk, ale szukam czegoś bardziej przypominającego ProGuarda - automatycznego i wbudowanego w narzędzia zamiast hackowania ostatecznego pliku .apk. – ProjectJourneyman
Twoje scenariusze są możliwe do zrobienia za pomocą zewnętrznych narzędzi do budowania, takich jak Ant lub Maven, oba zapewniają możliwość precyzyjnego sterowania każdym krokiem podczas procesu kompilacji (kompilacja, dekompresja, pakowanie itd.). jeśli korzystasz z Mavena, wyłącz zasoby za pomocą [maven-resource-plugin] (http://maven.apache.org/plugins/maven-resources-plugin/resources-mojo.html). – yorkw
Może będę musiał pójść tą drogą. Miałem jednak nadzieję na czystsze (i idealnie prostsze) rozwiązanie. – ProjectJourneyman