2012-04-11 4 views
3

Одной из новых функций Android является возможность создания Library Project.Экспозиция включенных в проект «Android Library Project» для проектов, которые ссылаются на них.

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

Если у вас есть следующая ситуация:

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

- ReferencingProject ссылки LibraryProject.

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

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

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

+0

Да, вы можете сделать это в Eclipse ... просто экспортируйте их (Свойства проекта => Путь сборки Java => Заказ и экспорт) установите флажок «Зависимости Android» – Selvin

ответ

5

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

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

Очистить и построить проект библиотеки и «экспортированные» библиотеки теперь включены в изготовленную банку.

EDIT

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

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

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

EDIT2

Последнего ADT обновление бы вы вручную выбрать "Android зависимости", как "вывезенные" в вашей Java Build Path. Опять же, предупреждение было бы неплохо.