Открывайте включенные jar-файлы проекта библиотеки Android в проекты, которые на них ссылаются

Одной из новых функций Android является возможность создания проекта библиотеки.

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

Когда у вас возникла следующая ситуация:

-LibraryProject содержит LibraryProject/libs/folder/lib.jar в пути сборки.

-ReferencingProject ссылки LibraryProject.

Из ReferencingProject у вас нет доступа ни к чему внутри lib.jar (например, константы, используемые для связи с методами в Library Project).

Решением этой проблемы является включение «lib.jar» в качестве внешней библиотеки в проект ссылок, но этот подход начинает сводить на нет преимущества, которые вы получаете от наличия автономного библиотечного проекта, создавая несколько добавленных вручную ссылок на ресурсы, которые могут перемещаться/изменяться. во время разработки проекта библиотеки (не говоря уже о некоторых довольно запутанных ошибках).

Есть ли способ представить включенные классы libs в проект ссылки без необходимости вручную ссылаться на них как на внешние банки?


person Graeme    schedule 11.04.2012    source источник
comment
да, вы можете сделать это в Eclipse ... просто экспортируйте их (Свойства проекта => Путь сборки Java => Заказ и экспорт) проверьте зависимости Android   -  person Selvin    schedule 11.04.2012


Ответы (1)


Как говорит @Selvin,

В проекте библиотеки вы можете указать, какие библиотеки вы хотите пометить как «экспортированные» в окне, которое открывается с помощью: Project properties => Java Build Path => Order and Export. В этом примере вы бы проверили libs/folder/lib.jar.

Очистите и создайте проект библиотеки, а «экспортированные» библиотеки теперь включены в созданный файл jar.

ИЗМЕНИТЬ

Это симптом обновления до ADT 17 — (Команда Android: Может быть, добавить несколько предупреждений в примечания к выпуску, когда обновление нарушает существующие архитектуры?)

http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

Если вы не хотите добавлять библиотеку в "Order and Export", то размещение локальной банки в базовой папке /libs/ автоматически добавит ее в «Зависимости Android», которые экспортируются в банку, созданную из вашей общей библиотеки.

ИЗМЕНИТЬ2

При недавнем обновлении ADT вы также вручную выбираете «Зависимости Android» как «Экспортированные» в своем пути сборки Java. Опять же, предупреждение было бы неплохо.

person Graeme    schedule 11.04.2012