Как сделать .jar из проекта Android Studio

Я использую AndroidStudio, и у меня есть этот проект, как показано:

введите описание изображения здесь

То, что находится внутри синего круга, – myLib. myLib также должен использовать внешнюю библиотеку, расположенную внутри красного круга, и пакет apache (зеленый круг).

Поэтому я хочу, чтобы все это стало единым .jar, поэтому я могу использовать его в других проектах.

Пошаговое руководство было бы действительно оценено, я новичок в мире разработчиков.

Благодаря!

  • Открыть проект build.gradle для библиотеки введите описание изображения здесь

  • Напишите две задачи в build.gradle – deleteJar и createJar и добавьте правило createJar.dependsOn (deleteJar, build) введите описание изображения здесь

Код сверху:

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иента справа и откройте все задачи под своей библиотекой -> другие. Здесь вы увидите две новые задачи – createJar и deleteJar введите описание изображения здесь

  • Дважды щелкните по createJar введите описание изображения здесь

  • Как только задача будет выполнена успешно, получите созданную банку из пути, упомянутого в задаче createJar, т.е. libs / xxxx.jar введите описание изображения здесь

  • скопируйте вновь созданный банку в папку с вашим желаемым проектом -> щелкните правой кнопкой мыши -> выберите «добавить как библиотеку»

Если вы настроите код как простой Java-модуль в Gradle, то очень легко заставить Gradle предоставить вам файл jar с содержимым. У этого jar-файла будет только ваш код, а не другие библиотеки Apache. Я бы рекомендовал распространять его таким образом; немного странно связывать зависимости внутри вашей библиотеки, и для пользователей этих библиотек более естественно включать эти зависимости самостоятельно (поскольку в противном случае конфликты этих проектов уже связывают копии библиотеки, возможно, разных версий ). Более того, вы избегаете потенциальных проблем с лицензированием при перераспределении кода других людей, если вы собираетесь публиковать свою библиотеку.

Возьмите код, который также необходимо скомпилировать в банку, и переместите его на отдельный простой Java-модуль в Android Studio:

  1. Меню « Файл» > « Новый модуль … > Библиотека Java
  2. Настройте библиотеку, имя пакета Java и имена classов в мастере. (Если вы не хотите, чтобы он создавал для вас class, вы можете просто удалить его после создания модуля)
  3. В вашем коде Android настройте зависимость от нового модуля, чтобы он мог использовать код в вашей новой библиотеке:
  4. Файл > Структура проекта > Модули > (ваш Android-модуль) > Зависимости > + > Зависимость модуля . Смотрите скриншот ниже: введите описание изображения здесь
  5. Выберите свой модуль из списка в появившемся диалоговом окне: введите описание изображения здесь

Надеюсь, ваш проект должен строиться нормально сейчас. После создания сборки файл jar для вашей библиотеки Java будет помещен в каталог build / libs в каталог вашего модуля. Если вы хотите вручную создать файл jar, вы можете запустить задачу создания файла jar из windows Gradle: введите описание изображения здесь

Просто добавьте это в свой javas-модуль 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-файлу.

то, как я нашел, это найти выход компилятора проекта (проектная структура> проект). затем найдите исправленную папку модуля, которую хотите перевернуть в банку, сжать ее с помощью zip и изменить расширение вывода с zip на jar.

.jar будет автоматически генерироваться при компиляции и запуске приложения.

Вы можете найти файл class.jar из root_folder / app / build / intermediates / bundles / debug

расположение файла jar

  • Регистрация кнопки гарнитуры с помощью BroadcastReceiver на Android
  • Google firebase проверяет, существует ли ребенок
  • Как вы используете Intent.FLAG_ACTIVITY_CLEAR_TOP, чтобы очистить стек активности?
  • Android Microsoft Office Library (.doc, .docx, .xls, .ppt и т. Д.)
  • Вопрос о блокировке Java
  • Выполнение не выполнено для задачи: app: compileDebugJavaWithJavac в Android Studio
  • getLocationOnScreen () vs getLocationInWindow ()
  • Как определить использование размера кучи приложения для Android
  • Как я могу представить диапазон в Java?
  • Android Studio не удалось найти версию, совместимую с com.android.support:appcompat-v7:+
  • android.content.res.Resources $ NotFoundException: Идентификатор ресурса строки # 0x0
  • Interesting Posts

    Что такое начальное значение Java String по умолчанию?

    При использовании синергии она иногда отстает

    Доступ к URL-адресу и чтение данных с помощью R

    Анализ кода для эффективности?

    Каковы подводные камни использования Websockets вместо RESTful HTTP?

    Ошибка обновления Windows 80072EE2

    Multi-async в Entity Framework 6?

    Как конвертировать серии MP3 в M4B в партии

    Как открыть случайный файл в папке и установить, должны ли открываться только файлы с указанными расширениями имен файлов?

    Изменение цвета панели действий программно более одного раза

    Используя FORFILES в пакете для удаления файлов tmp и bak старше недели

    Как удалить все файлы и папки в каталоге?

    Как CountDownLatch используется в многопоточности Java?

    Почему расчетная ширина и высота в пикселе строки в Tkinter различаются между платформами?

    Можно ли вызвать виртуальную функцию базового classа, если я ее переопределяю?

    Давайте будем гением компьютера.