Построить библиотечный проект - PullRequest
3 голосов
/ 10 марта 2012

все.Я создал проект библиотеки Android, и он отлично работает, когда я ссылаюсь на него из основного проекта.Но когда я строю проект библиотеки отдельно, он не содержит R.java и ресурсов.Есть ли способ построить библиотечный проект с ресурсами и R.java?

Ответы [ 2 ]

5 голосов
/ 12 марта 2012

Я использую Eclipse и никогда не собираю свой проект Android Library вручную, но я думаю, что вопросы разработки, изложенные в официальном руководстве разработчика здесь , должны ответить на ваш вопрос:

Каждый проект библиотеки создает свой собственный класс R

Когда вы строите зависимый проект приложения, библиотечные проекты компилируются и объединяются с проектом приложения. Каждая библиотека имеет свой собственный класс R, названный в соответствии с именем пакета библиотеки. Класс R, сгенерированный из основного проекта и проекта библиотеки, создается во всех необходимых пакетах, включая пакет основного проекта и пакеты библиотек.

Обновление с другой запиской, цитируемой официальным разработчиком Библиотечные проекты :

Однако проект библиотеки отличается от стандартного проекта приложения Android тем, что вы не можете скомпилировать его непосредственно в свой собственный файл .apk и запустить его на устройстве Android. Точно так же вы не можете экспортировать проект библиотеки в автономный файл JAR, как это было бы сделано для настоящей библиотеки. Вместо этого вы должны скомпилировать библиотеку косвенно, ссылаясь на библиотеку в зависимом приложении и создавая это приложение.

5 голосов
/ 11 марта 2012

Сейчас это невозможно.

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

  1. Создайте проект библиотеки Android с вашим исходным кодом и тому подобным - это ваш мастер-проект, из которого вы создадите версию проект библиотеки для распространения
  2. Скомпилируйте исходный код Java (например, ant compile) и превратите его в файл JAR
  3. Создание дистрибутива проекта библиотеки Android, с тем же ресурсы как основной проект библиотеки, но без исходного кода
  4. Поместите файл JAR в библиотеку проекта дистрибутива Android. каталог Получившийся дистрибутив проекта библиотеки Android будет иметь все Основной проект понадобится, просто без исходного кода.

В этом решении есть некоторые ограничения:

  1. Нам все еще нужно отправить ресурсы.
  2. Мы должны переписать наш код, чтобы избежать использования значений R., так как они будет неправильно. Нам придется искать все идентификаторы ресурсов, используя getResources (). getIdentifier () и / или отражение.
...