Подтвердить что ты не робот

Android. Возможно ли создать пользовательскую библиотеку для использования в нескольких приложениях?

Возможно ли создать пользовательскую библиотеку на Android (имеющую собственные ресурсы макета) для использования в нескольких приложениях Android?

  • Я создал обычный файл *.jar, но когда я пытался динамически создавать/стилизовать свои представления, большинство свойств не работают. Даже ссылки на простые стили из файла android.jar, такие как android.attr.listSeparatorTextViewStyle, не работали.

  • Я создал проект Android без каких-либо действий, имея свои собственные файлы ресурсов, а затем ссылался на этот проект из другого проекта Android для использования в его пути сборки. Кажется, что все работает нормально, но эмулятор продолжает сбой (без значимого сообщения об ошибке в LogCat), когда я пытаюсь запустить проект.

Я что-то пропустил?

4b9b3361

Ответ 1

Ну, я думаю, что есть способ сделать это (хотя я сам не пробовал), но для пользователей вашей библиотеки необходимо создать свои APK вручную через aapt.

Проблема заключается в следующем: JAR, который вы экспортируете, содержит файл класса R, который содержит идентификаторы ресурсов вашей библиотеки. Таким образом, любое приложение может получить доступ к этим идентификаторам, просто связав ваш JAR. Однако этого недостаточно, потому что по умолчанию только ресурсы в папке app/папке связаны с APK. Следовательно, вам нужно создать APK самостоятельно, используя aapt, говоря ему, чтобы также включить любые ресурсы из вашей библиотеки. Для получения дополнительной информации обратитесь к справке инструмента aapt.

Так как это означает, что пользователи вашей библиотеки должны ввести процесс ручной сборки (или, по крайней мере, изменить его), это приводит к плохим результатам.

Ответ 2

Возможно, вам будет поздно ответить, но это интересно. Настройка проекта библиотеки

Проект библиотеки Android - это проекта разработки, который Исходный код и ресурсы Android. Другие проекты приложений для Android могут ссылаться на проект библиотеки и время сборки, включают его скомпилированные источников в их .apk файлах. множественный приложения могут ссылаться на тот же проект библиотеки и любой проект приложения может ссылаться несколько проектов библиотеки.

Если у вас есть исходный код и ресурсы которые являются общими для множественных приложений, вы можете перемещаться их в проект библиотеки, чтобы он легче поддерживать приложений и версий. Вот некоторые общие сценарии, в которых вы могут использовать библиотечные проекты:

Ответ 3

Можно ли создать пользовательский библиотека в андроиде (имеющая собственные ресурсов макета) для использования через несколько приложений для Android?

Нет. JARs не могут иметь ресурсы. Вы можете совместно использовать код таким образом, но ресурсы должны находиться в приложениях, повторно использующих JAR.

Даже ссылки на простые стили из файл android.jar, такой как android.attr.listSeparatorTextViewStyle не работает.

Убедитесь, что вы связываете JAR с android.jar. Вы можете увидеть много примеров этого в компонентах CWAC на моей странице github.

Ответ 4

Это все еще верно с R21? Я могу экспортировать проект библиотеки в jar файл и успешно использоваться в других проектах клиента, как с мудрым кодом, так и с доступом к файлам ресурсов.

еще http://developer.android.com/tools/projects/index.html все еще имеет следующий оператор, который больше не верен:

Вы не можете экспортировать проект библиотеки в файл JAR. Библиотека не может быть распределенный как двоичный файл (например, JAR файл). Это будет добавлено в будущей версии SDK Tools.