Ответ 1
Если вы создаете проект библиотеки Android без каких-либо ресурсов, ADT (впервые замеченный в r16) создаст .jar с тем же именем, что и проект в папке "bin".
Я знаю проекты Android Library, которые позволяют создавать проект с общим источником, который можно поместить в приложения Android при необходимости. Однако для этого требуется, чтобы источник был доступен.
Я ищу способ создания и распространения библиотеки с закрытым исходным кодом, которая может использоваться в других проектах Android, таких как традиционный JAR. Это потребует использования компилятора Android, поэтому он не является файлом JAR для ванили-Java. FWIW, мне не нужно вставлять ресурсы/макеты в JAR.
Я видел http://andparcel.com/, но это похоже на обходной путь, и я предпочел бы использовать что-то "официально поддерживаемое" Google. Кроме того, мне нужно убедиться, что JAR я build совместим со старой/новой версией Android SDK (т.е. Мне нужен способ установить версию целевой платформы и т.д.).
Могут ли последние наборы инструментов Android создавать/использовать JAR файлы? Можете ли вы указать на какую-то документацию о том, как я могу это сделать?
Если вы создаете проект библиотеки Android без каких-либо ресурсов, ADT (впервые замеченный в r16) создаст .jar с тем же именем, что и проект в папке "bin".
Android не предоставляет специальный вид Android-JAR. Но вы можете добавить build.xml в свой проект и построить JAR с помощью ant.
Мой файл build.xml выглядит следующим образом:
<project name="MyAndroidLib" default="dist" basedir=".">
<description>
This is my Android lib
</description>
<!-- set global properties for this build -->
<property name="src" location="src" />
<property name="bin" location="bin" />
<target name="jar">
<jar destfile="MyAndroidLib.jar" basedir="bin/classes/">
<!-- replace 'com' by what ever you are using -->
<!-- as first part of the package name -->
<!-- e.g. de, org, ... -->
<!-- the ** is important to include the directory recursively -->
<include name="com/**" />
</jar>
</target>
</project>
Создайте JAR, запустив ant jar
в основной папке проектов.
Вы можете создать "обычный" Java-проект и импортировать из него Android.jar. Затем у вас будет доступ к каждому компоненту в SDK. Затем вы можете экспортировать свой проект как jar... и загрузить его из своего приложения для Android. Это отлично работает, и это кажется простым способом сделать это.
просто перейдите к свойствам проекта, который вы хотите сделать jar.Click на вкладке Android. и отметьте в библиотеке Is. теперь вы можете видеть файл .jar в папке bin.use, где вы хотите использовать.
Единственное решение, "официально поддерживаемое" Google, - это проект библиотеки, и для его распространения требуется исходный код. Вы можете создать JAR обычным способом, но вы не можете включать или ссылаться на ресурсы внутри него.
К сожалению, я думаю, что также невозможно включить пакетный JAR в проект библиотеки, как средство для удовлетворения требований к исходному коду.
Попробуйте следующее: Это работает
1) сделайте проект вашей библиотеки нормальным проектом, сняв флажок IsLibrary.
2) Выполните проект в качестве приложения для Android. (Он не будет показывать никаких ошибок)
3) вы найдете файл .jar в папке bin вместе с .apk.
4) Дайте вам .jar, которые хотят использовать вашу библиотеку.
5) Скажите им, чтобы импортировать внешнюю банку в путь сборки.
это будет отлично работать со всеми ресурсами. удачи.
В последней версии Android Studio 1.2 создание библиотеки JAR было сделано так же просто, как точка и щелчок.
Этапы:
Следующий шаг - добавление вашей библиотеки Jar в зависимости от вашего приложения. Просто, как просто
.... Или вы можете просто добавить приведенную ниже строку в файл приложения gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) // Default Gradle Task, should be already present
compile 'com.android.support:appcompat-v7:21.0.3' // Default Gradle Task, should be already present
compile project(':nameOfYourJarLibraryModule') // This is your jar library module
}
Google продвигает Android-архив (AAR), хотя поддержка JAR возвращается в андроид-студию. Чтобы узнать разницу между AAR и JAR, обратитесь к этой ссылке
ADT создает папку bin, которая содержит все файлы классов для всех соответствующих исходных файлов и каталогов в вашем проекте, вы можете использовать команду jar, создать архив jar, содержащий эти файлы классов и каталоги, и предположительно вашу библиотеку, но конечно, уровень платформы файлов классов будет ориентирован только на текущий уровень сборки проекта - для каждого уровня платформы потребуется другой файл jar; Однако самое замечательное в том, что файл R.class содержится в дереве каталогов проекта, и поэтому у вас есть доступ к его ресурсам. Я не знаю, является ли это официальным способом делать что-то в Android, но это сработало для меня.
В нашем проекте мы создаем apk (используя apkbuilder), который установлен в /system/framework, и добавил этот apk в classpath по умолчанию. Для компиляции приложений с использованием jar мы создаем файл jar (используя jar c).
Примечание. У нас нет ресурсов в библиотеке.
.jar - это просто .zip файл, содержащий файл .class(вы можете попробовать изменить расширение любого .jar файла на .zip, а затем увидеть результат). Легко, вы можете создать любую библиотеку .jar для любых целей, запустив файл .class.
Открыть файл project.properties ввести значение android.library = истина
сохранить файл, из меню затмения для проекта, выберите 'build automatically' затем выберите 'clean' новый банку создается в корзине