Экспортирует ли проект библиотеки Android также свои внешние библиотеки?

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

Мне было интересно, какое лучшее решение для этого, когда я обнаружил, что в последнее время Android поддерживает библиотечные проекты (http://developer.android.com/guide/developing/projects/projects-eclipse.html#SettingUpLibraryProject).

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

Мой программный уровень зависит от набора внешних jar-файлов, которые правильно расположены в папке lib проекта библиотеки.

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

Итак, при обращении к библиотечному проекту можно повторно использовать только определенный там исходный код? Если в моем библиотечном проекте есть другие библиотеки, я должен импортировать эти библиотеки и в другие (я хочу избежать этого!)?

Мне также интересно узнать, есть ли другие способы сделать это, но при поиске я не нашел других способов реализации библиотек/общего кода Android.

Спасибо.


person the_dark_destructor    schedule 14.03.2011    source источник


Ответы (2)


Проекты библиотек Android обязательно включают любые файлы JAR, которые есть в каталоге libs/ проекта библиотеки. Однако, если вы используете Eclipse, вам, вероятно, придется как-то вручную добавить их в путь сборки основного проекта (тот, который повторно использует библиотеку).

person CommonsWare    schedule 14.03.2011
comment
Здравствуйте, спасибо за ваш ответ. Да, я использую Eclipse. Если я буду следовать тому, что вы предложили, что произойдет, когда я разверну хост-проект на устройстве (тот, который повторно использует библиотеку)? Я думаю, что jar-файлы в папке lib основного проекта также будут развернуты. Вы так не думаете? - person the_dark_destructor; 14.03.2011
comment
Я думаю, что это lib/, а не libs/ - person Audrius; 14.03.2011
comment
@the_dark_destructor: Вам так не кажется? -- бьет меня. Я максимально избегаю Eclipse. - person CommonsWare; 14.03.2011
comment
@CommonsWare: что вы используете? - person tacone; 14.03.2011
comment
@CommonsWare Я пытаюсь прямо сейчас, дам вам знать, каков результат ... однако мне жаль, что вам не нравится Eclipse, я использую его почти для всего (Java, Android, Web- Сервисы, текстовый редактор..) и я им вполне доволен, дайте ему еще шанс :) - person the_dark_destructor; 14.03.2011
comment
@tacone: я использую обычный редактор (в настоящее время Komodo Edit) и командную строку. - person CommonsWare; 14.03.2011
comment
@the_dark_destructor: Я преподаю разработку приложений для Android и наблюдаю, как мои студенты борются с Eclipse. Он не наполняет меня теплыми пушистиками. Тем не менее, для некоторых вещей это неизбежно (например, плагин MAT для проверки дампов кучи), и, по крайней мере, в настоящее время у меня есть оборудование, способное его запустить (четырехъядерный процессор с 4 ГБ ОЗУ). - person CommonsWare; 14.03.2011
comment
@CommonsWare @Tacone @Audrius Мне удалось разобраться в этом вопросе. CommonsWare был прав, что невозможно заставить хост-проекты видеть jar-файлы, определенные в библиотечном проекте, без добавления их в свои пути к классам (странно! Это должно быть одним из преимуществ использования библиотечного проекта!). Глядя лучше на официальные документы, я понял, что даже если вы используете проект библиотеки, общий источник включается в основной проект во время развертывания: поэтому библиотечные проекты - это просто способ не дублировать источники, но общий источник всегда развертывается с apk хост-проектов(странно!) - person the_dark_destructor; 15.03.2011

Хорошо, я наконец понял, что для решения этой проблемы достаточно добавить jar-файлы в путь сборки основного проекта (не нужно их повторно импортировать, вы можете просто выбрать путь из проекта библиотеки). Однако странно, что они не экспортируются автоматически в путь к классам хост-проекта.

person the_dark_destructor    schedule 15.03.2011