Как сделать .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) с помощью инструментов командной строки.