Как создать банку для проекта библиотеки Android

Мне нужно создать библиотеку, которую я собираюсь экспортировать клиенту в файл jar. Есть ли способ создать банку с ресурсами в ней?

В AdMob Google есть такая банка, которая включает в себя файл ресурсов, такой как R $ layout.class. Эта страница описывает какой-то способ сделать это, но я не могу точно понять, как я должен импортировать проект библиотеки в приложение, используя вышеописанный метод.

Solutions Collecting From Web of "Как создать банку для проекта библиотеки Android"

Это самое близкое, что вы можете получить:

Шаг №1: Создайте обычный проект библиотеки Android и получите его работу.

Шаг № 2: Скопируйте этот проект библиотеки Android в другой каталог.

Шаг № 3: Создайте JAR из скомпилированных классов Java из исходного проекта библиотеки Android и поместите этот JAR в каталог libs/ копии копии, сделанной вами на шаге 2. Вы должны иметь возможность запускать ProGuard в этом JAR вручную, хотя я этого не пробовал.

Шаг №4: Удалите все внутри каталога src/ проекта скопированной библиотеки, оставив позади и пустую директорию src/ .

Шаг № 5: ZIP или иным образом распространять скопированный проект библиотеки Android.

Это даст вам проект библиотеки Android, такой как Play Services, где доступны ресурсы, но исходного кода нет.

ОБНОВЛЕНИЕ . Еще более эффективный подход в настоящее время заключается в том, чтобы упаковать ваш библиотечный проект как AAR, который является собственным способом Android для создания многоразового артефакта из вашего скомпилированного кода плюс требуемые ресурсы. В настоящее время (июль 2014 года) Gradle для Android, Android Studio и android-maven-plugin могут создавать и потреблять AAR.

Это работает!

  1. Сделайте проект библиотеки обычным проектом, сняв флажок IsLibrary.
  2. Выполните проект в качестве приложения для Android. (Он не будет показывать никаких ошибок)
  3. Вы найдете файл .jar в папке bin вместе с .apk.
  4. Дайте вам .jar, которые хотят использовать вашу библиотеку.
  5. Скажите им, чтобы импортировать внешнюю банку в путь сборки.

Это будет отлично работать со всеми ресурсами. Спасибо всем. За ваш ответ

Следуйте приведенным ниже инструкциям, чтобы получить распределяемую банку вашей библиотеки (проверен для проекта библиотеки без внешних зависимостей):

  1. Создайте свой проект библиотеки. Убери это. Вы получите файл libraryProjectName.jar внутри папки bin. (Убедитесь, что в библиотечном проекте выбрана «Библиотека».
  2. Скопируйте файл .jar в папку libs целевого приложения.
  3. Обновите рабочее пространство и нажмите Ctr+Shift+O (на Windwows / Linux) или Cmd+Shift+O (на Mac), чтобы разрешить любые зависимости от импорта из добавленной библиотеки.

Комментарий в случае возникновения каких-либо проблем.

Протестировано с помощью adt 22.2.1

  1. Создайте свой проект библиотеки
  2. Создать пустой проект
  3. Добавить проект библиотеки в пустой проект
  4. Построить проект
  5. В папке «/ gen» вы найдете класс для вашего проекта библиотеки, в нем будут представлены ресурсы для проекта lib.
  6. Экспорт JAR (выберите только этот класс … из папки / gen)
  7. Экспорт JAR из вашего проекта lib
  8. Переименовать экспортированные файлы в zip и слить контент
  9. Переименуйте окончательный файл как JAR и добавьте его в проект.

Вы не можете упаковывать файлы ресурсов в банку. Вы можете экспортировать проект как проект библиотеки.

Вы экспортируете свои классы утилит, которые не относятся к ресурсам в android, т.е. чистые классы java в качестве файла jar.

Проверьте ссылку ниже

http://developer.android.com/tools/projects/index.html

Чтобы сделать проект проектом библиотеки

Щелкните правой кнопкой мыши на своем проекте. Перейдите в свойства. Выберите Android. Убедитесь, что установлена ​​библиотека.

Чтобы передать проект библиотеки в проект Android

Щелкните правой кнопкой мыши на своем проекте. Перейдите в свойства. Выберите Android. Нажмите «Добавить». Обзор и проект библиотеки.

Цитирование из документов

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

Вот простой способ сделать это с муравьем, нашел это в исходном коде Volley. Добавьте код ниже в custom_rules.xml, затем создайте с ant jar

 <?xml version="1.0" encoding="UTF-8"?> <project name="volley-rules" default="help"> <!-- A rule to generate the JAR for inclusion in an Android application. Output file will be bin/volley.jar --> <target name="jar" depends="-compile"> <jar destfile="bin/volley.jar" basedir="bin/classes" /> </target> </project> 

С Eclipse ADT v22.6.2 вы можете просто экспортировать jar, щелкнув File-> Export-> Java-> Jar File, выберите каталоги и место назначения, где нужно сохранить.

В соответствии с последней версией Android Studio v1.2, это так же просто, как наличие торта. Уже ответил полное решение с скриншотами по этой ссылке