Как создать банку для проекта библиотеки Android
Мне нужно создать библиотеку, которую я собираюсь экспортировать клиенту в файл jar. Есть ли способ создать банку с ресурсами в ней?
В Google AdMob есть такая банка, которая включает в себя файл ресурсов, такой как R $layout.class.
Эта страница описывает какой-то способ сделать это, но я не могу точно понять, как я должен импортировать проект библиотеки в приложение с использованием метода выше.
Ответы
Ответ 1
Это самое близкое, что вы можете получить:
Шаг # 1: Создайте обычный проект библиотеки Android и получите его работу.
Шаг # 2: Скопируйте этот проект библиотеки Android в другой каталог.
Шаг № 3: Создайте JAR из скомпилированных классов Java из исходного проекта библиотеки Android и поместите этот JAR в каталог libs/
копии, сделанной на шаге 2. Вы должны иметь возможность запускать ProGuard в этом JAR вручную, хотя я этого не пробовал.
Шаг №4: Удалите все внутри каталога src/
проекта скопированной библиотеки, оставив позади и пустым каталог src/
.
Шаг № 5: ZIP или иным образом распространять скопированный проект библиотеки Android.
Это даст вам проект библиотеки Android, такой как Play Services, где доступны ресурсы, но исходный код отсутствует.
ОБНОВЛЕНИЕ. Еще лучший подход в настоящее время - это пакетный проект библиотеки как AAR, который является обычным способом создания многоразового артефакта из вашего скомпилированного кода плюс требуемые ресурсы. В настоящее время (июль 2014 года) Gradle для Android, Android Studio и android-maven-plugin
могут создавать и потреблять AAR.
Ответ 2
Это работает!
- Сделайте проект библиотеки обычным проектом, сняв флажок с IsLibrary.
- Выполните проект в качестве приложения для Android. (Он не будет показывать никаких ошибок)
- Вы найдете файл .jar в папке bin вместе с .apk.
- Предоставьте вам .jar, которые хотят использовать вашу библиотеку.
- Скажите им, чтобы импортировать внешнюю банку в путь сборки.
Это будет хорошо работать со всеми ресурсами. Спасибо всем. для вашего ответа
Ответ 3
Следуйте приведенным ниже инструкциям, чтобы получить распределяемую банку вашей библиотеки (проверена для проекта библиотеки без внешних зависимостей):
- Создайте проект библиотеки. Убери это. Вы получите файл libraryProjectName.jar внутри папки bin. (Убедитесь, что в проекте библиотеки "находится библиотека" .
- Скопируйте файл .jar в папку libs целевого приложения
- Обновите рабочее пространство и нажмите
Ctr+Shift+O
(на Windwows/Linux) или Cmd+Shift+O
(на Mac), чтобы разрешить любые зависимости от импорта из добавленной библиотеки.
Комментарий в случае возникновения каких-либо проблем.
Ответ 4
Протестировано с помощью adt 22.2.1
- Создайте проект библиотеки
- Создать пустой проект
- Добавить проект библиотеки в пустой проект
- Проект сборки
- В папке /gen вы найдете класс для вашего проекта библиотеки, это будет содержать ваши ресурсы для проекта lib.
- Экспорт JAR (выберите только этот класс... из папки /gen )
- Экспорт JAR из вашего проекта lib
- Переименуйте экспортированные файлы в zip и слияние содержимого
- Переименуйте окончательный файл как JAR и добавьте его в проект.
Ответ 5
Вы не можете упаковывать файлы ресурсов в банку. Вы можете экспортировать проект как проект библиотеки.
Вы экспортируете свои классы утилит, которые не относятся к ресурсам в android, т.е. чистые классы java в качестве файла jar.
Проверьте ссылку ниже
http://developer.android.com/tools/projects/index.html
Сделать проект проектом библиотеки
Щелкните правой кнопкой мыши на своем проекте. Перейдите к свойствам. Выберите Android. Убедитесь, что установлена библиотека.
Чтобы передать проект библиотеки в проект андроида
Щелкните правой кнопкой мыши на своем проекте. Перейдите к свойствам. Выберите Android. Нажмите "Добавить". Обзор и проект библиотеки.
Цитата из документов
Проект библиотеки отличается от стандартного проекта приложений для Android тем, что вы не можете скомпилировать его непосредственно в свой собственный .apk и запустить его на устройстве Android. Аналогично, вы не можете экспортировать проект библиотеки в автономный JAR файл, как и для истинной библиотеки. Вместо этого вы должны автоматически компилировать библиотеку, ссылаясь на библиотеку в зависимом приложении и создавая это приложение.
Ответ 6
Вот простой способ сделать это с помощью ant, нашел это в исходном коде 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>
Ответ 7
С Eclipse ADT v22.6.2 вы можете просто экспортировать jar, щелкнув File- > Export- > Java- > Jar File, выберите каталоги и место назначения, где нужно сохранить.
Ответ 8
Как и в случае с последней версией Android Studio v1.2, это так же просто, как наличие торта.
Уже ответил полное решение со скриншотами на этой ссылке