Как сделать .jar из проекта Android Studio
Я использую AndroidStudio, и у меня есть этот проект, как показано ниже:
![enter image description here]()
Что находится внутри синего круга - myLib. myLib также должен использовать внешнюю библиотеку, расположенную внутри красного круга, и пакет apache (зеленый круг).
Итак, я хочу, чтобы все это стало единым .jar, поэтому я могу использовать его в других проектах.
Пошаговое руководство будет действительно оценено, я новичок в мире разработчиков.
Спасибо!
Ответы
Ответ 1
-
Откройте build.gradle для библиотечного проекта ![enter image description here]()
-
Написать две задачи в build.gradle - deleteJar и createJar и добавить правило createJar.dependsOn(deleteJar, build) ![enter image description here]()
Код сверху:
task deleteJar(type: Delete) {
delete 'libs/jars/logmanagementlib.jar'
}
task createJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('libs/jars/')
include('classes.jar')
rename('classes.jar', 'logmanagementlib.jar')
}
createJar.dependsOn(deleteJar, build)
-
Разверните панель Gradle справа и откройте все задачи в yourlibrary-> другие. Там вы увидите две новые задачи - createJar и deleteJar ![enter image description here]()
-
Дважды щелкните на createJar ![enter image description here]()
-
После успешного выполнения задачи получите сгенерированный файл jar по пути, указанному в задаче createJar, т.е. libs/xxxx.jar ![enter image description here]()
-
скопируйте сгенерированный jar файл в нужный проект lib folder--> right click--> выберите "добавить как библиотеку"
Ответ 2
Если вы настроили код как простой Java-модуль в Gradle, то действительно легко иметь Gradle предоставить вам файл jar с содержимым. У этого jar файла будет только ваш код, а не другие библиотеки Apache. Я бы рекомендовал распространять его таким образом; немного странно связывать зависимости внутри вашей библиотеки, и более обычным для пользователей этих библиотек является включение этих зависимостей самостоятельно (поскольку в противном случае конфликты этих проектов уже связывают копии библиотеки, возможно, разных версий). Что еще, вы избегаете потенциальных проблем с лицензированием при перераспределении кода других людей, если вы хотите опубликовать свою библиотеку.
Возьмите код, который также необходимо скомпилировать в банку, и переместите его на отдельный простой Java-модуль в Android Studio:
- Меню > Новый модуль... > Библиотека Java
- Настройте библиотеку, имя пакета Java и имена классов в мастере. (Если вы не хотите, чтобы он создавал для вас класс, вы можете просто удалить его после создания модуля)
- В вашем коде Android настройте зависимость от нового модуля, чтобы он мог использовать код в вашей новой библиотеке:
- Файл > Структура проекта > Модули > (ваш Android-модуль) > Зависимости > + > Зависимость модуля. Смотрите скриншот ниже:
![enter image description here]()
- Выберите свой модуль из списка в появившемся диалоговом окне:
![enter image description here]()
Надеюсь, ваш проект должен строиться нормально. После создания сборки файл jar для вашей библиотеки Java будет помещен в каталог build/libs в вашем каталоге модулей. Если вы хотите создать файл jar вручную, вы можете запустить его задачу jar из файла Gradle:
![enter image description here]()
Ответ 3
У Gradle уже есть Task
для этого под other
![enter image description here]()
Затем прокрутите вниз до createFullJarRelease
и щелкните по нему.
![Gradle Tasks]()
После этого вы найдете свой артефакт в этой папке в вашем проекте
Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar
Ответ 4
Просто добавьте это в свой java-модуль build.gradle. Он будет содержать зависимые библиотеки в архиве.
mainClassName = "com.company.application.Main"
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
В результате появится файл [module_name]/build/libs/[module_name].jar.
Ответ 5
способ, которым я нашел, - найти выход компилятора проекта (проектная структурa > проект).
затем найдите исправленную папку модуля, которую хотите перевернуть в банку,
сжать его с помощью zip и изменить расширение вывода от zip до jar.
Ответ 6
.jar файл будет автоматически генерироваться при компиляции и запуске вашего приложения.
Вы можете найти файл class.jar из root_folder/app/build/intermediates/bundles/debug
![расположение файла jar]()
Ответ 7
task deleteJar(type: Delete) {
delete 'libs/mylibrary.jar'
}
task exportjar(type: Copy) {
from('build/intermediates/compile_library_classes/release/')
into('libs/')
include('classes.jar')
rename('classes.jar', 'mylibrary.jar')
}
exportjar.dependsOn(deleteJar, build)
Ответ 8
Если вы запускаете задачу Gradle из AndroidStudio
assembleRelease
или через терминал
./gradlew <moduleName>:assembleRelease
тогда вы сможете найти .aar
в <modulePath>/build/outputs/aar/<Name>.aar
После этого вы можете выполнять дополнительные операции (например, создавать .jar
) с помощью инструментов командной строки.