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

Проект библиотеки и Android

Я разрабатываю библиотеку Android SDK. В этой библиотеке я объявил и использовал некоторые действия. Теперь я попытался включить библиотеку в приложение, но я заметил, что должен объявить все действия библиотеки в приложении. Это очень плохо, потому что в библиотеке я включил множество мероприятий, и разработчик должен скопировать все действия в своем приложении. Есть ли решения для этого?

4b9b3361

Ответ 1

Нет, это известное ограничение библиотек на данный момент. В сообществе разработчиков Android есть много дискуссий об исправлении этого в будущем, но на данный момент это ограничение того, как они делают библиотеки.

Из doc

В файле манифеста приложения, вы должны добавить объявления всех компонентов, которые приложение будет использовать импортированный из проекта библиотеки. Для Например, вы должны объявить <activity>, <service>, <receiver>, <provider> и т.д., а также <permission>, <uses-library> и аналогичные элементы.

Кроме того, отличный ответ здесь от Марка Мерфи.

Ответ 2

Обновление 1: При использовании Gradle слияние манифеста выполняется автоматически. Подробнее о том, как это работает и как разрешать конфликты, можно найти здесь (спасибо за замечание guy.gc)

Оригинальное сообщение:

Чтобы обновить эту тему, теперь возможно автоматическое слияние. Вам нужно будет добавить

manifestmerger.enabled=true

к вашим проектным свойствам. Используя новый "манифестермер" свойство в Android также обсуждает это.

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