К сожалению, вы не можете.Вы можете подумать, что библиотеки Android могут вам помочь, но это не так.Это потому, что библиотеки Android «физически» объединяются в основное приложение при компиляции ресурсов.
Таким образом, с точки зрения aapt
ресурсы вашего приложения неотличимы от любых других ресурсов библиотеки Android.Более того, aapt
получает несколько каталогов ресурсов в качестве входных данных (т. Е. Путь к res
для приложения, плюс пути ко всем res
каталогам из ссылок на библиотеки Android), но в то же время передается только один AndroidManifest.xml
из приложениякак «владелец» этих ресурсов.
Что я хочу сказать, это то, что, хотя вы можете логически группировать ресурсы (например, стили) в отдельные библиотеки Android, вы все равно не можете ссылаться на них, используя имена пакетов этих библиотек Android.Только используя имя пакета основного приложения.
Например, у вас есть приложение с именем пакета com.test.app
и библиотека Android с com.test.lib
.И библиотека содержит стиль testStyle
.
Следующее не работает (и теоретически ничто не может помочь вам обойти это):
<TextView style="@com.test.lib:style/testStyle" .../>
Хотя это работает нормально:
<TextView style="@com.test.app:style/testStyle" .../>