Я скачал некоторые источники библиотека и хотели бы экспортировать ее как jar-файл, используя Android-Студия. Есть ли способ, чтобы экспортировать в файл jar, используя Android студия ?
редактировать:
В библиотеке я хочу, чтобы экспортировать его в виде jar-это библиотека для Андроид. Это'ы название "выдающийся" и может быть загружен с GitHub. https://github.com/pingpongboss/StandOut
Невозможно экспортировать библиотеки Android как файл jar. Возможно, однако, чтобы экспортировать его в файл АПС
. Файлы ААР `новый двоичный формат для Android-библиотек. Там's инфо о них в Google ввода-вывода новая система построения видео.
Во-первых, построить библиотеку в Android Studio или из командной строки выдачи `Gradle в построить из библиотеки'корневой директории.
В результате в <yourlibroot>/библиотеки/строить/yourlib.файл AAR
.
Этот файл AAR является двоичным представлением вашей библиотеки и могут быть добавлены в проект вместо библиотеки как проект зависимостей.
Чтобы добавить файл AAR как зависимость, вы должны опубликовать его в Maven с центральной или в локальный репозиторий Maven, и затем передать этот файл AAR в проекте'ы `Gradle в.создать файл.
Однако, этот шаг является немного запутанным. Я'вэ нашел хорошее объяснение, как это сделать здесь:
http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds
Я смог построить исходный код библиотеки для компиляции `.файл jar, используя подход от этого решения: https://stackoverflow.com/a/19037807/1002054
Вот что я сделал:
В случае, возможно, это был залп библиотека
Я использовал Android-студия 0.3.7. Я'вэ столкнулись с некоторыми проблемами во время этого шага, а именно мне пришлось скопировать папку Gradle в `из нового проекта Android, прежде чем я смог импортировать залп исходный код библиотеки, может варьироваться в зависимости от исходного кода, который вы используете.
// If your module is a library project, this is needed
//to properly recognize 'android-library' plugin
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.3'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 17
buildToolsVersion = 17
sourceSets {
main {
// Here is the path to your source code
java {
srcDir 'src'
}
}
}
}
// This is the actual solution, as in https://stackoverflow.com/a/19037807/1002054
task clearJar(type: Delete) {
delete 'build/libs/myCompiledLibrary.jar'
}
task makeJar(type: Copy) {
from('build/bundles/release/')
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'myCompiledLibrary.jar')
}
makeJar.dependsOn(clearJar, build)
В моем случае мне пришлось копировать gradlew.летучая мышьи
Gradle в файлы от нового проекта Android в моей библиотеке корень проекта.
Вы должны найти mycompiledlibrary.jar скомпилированный файл библиотеки `в
построить\каталог библиотеки`.
Я надеюсь, что кто-то находит это полезным.
Редактировать:
Хотя это работает, вы встретите повторяющихся исключений для библиотек при компиляции проекта, содержащего несколько модулей, где более чем одного модуля (включая модуль приложения) зависит от тех же фляги
файл (например. модули имеют собственную библиотеку каталог, который упоминается в строить.Gradle в
данного модуля).
В случае, когда вам нужно использовать одну библиотеку в более чем один модуль, я бы рекомендовал использовать такой подход: https://stackoverflow.com/questions/16746558/android-gradle-build-and-the-support-library/17153240#17153240
С Android Студия Версии V1.0 jar-файл доступен в следующих проекта по ссылке:
отладочные версии: "по your_app" и\build\intermediates\bundles\debug\classes.jar
релиз версии: "по your_app" и\build\intermediates\bundles\release\classes.jar
Jar-файл создается на порядок построения, В Android студия графического интерфейса это's от строить->сделать проект и из cmd линии это'ы "и gradlew построить и".
Включают следующие сборки.Gradle в:
android.libraryVariants.all { variant ->
task("generate${variant.name}Javadoc", type: Javadoc) {
description "Generates Javadoc for $variant.name."
source = variant.javaCompile.source
ext.androidJar = "${android.plugin.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
}
task("javadoc${variant.name}", type: Jar) {
classifier = "javadoc"
description "Bundles Javadoc into a JAR file for $variant.name."
from tasks["generate${variant.name}Javadoc"]
}
task("jar${variant.name}", type: Jar) {
description "Bundles compiled .class files into a JAR file for $variant.name."
dependsOn variant.javaCompile
from variant.javaCompile.destinationDir
exclude '**/R.class', '**/R$*.class', '**/R.html', '**/R.*.html'
}
}
Затем вы можете выполнить Gradle с: ./gradlew чистые javadocRelease jarRelease
, которая будет строить вам вашу банку, а также jar-файл javadoc в `строить/библиотеки/ папки.
Редактировать: с инструментами Gradle в нашем 1.10.+ получение андроид СДК Дир-другому, чем раньше. Вы должны менять следующее (Спасибо Василий!):
android.sdkDirectory
вместо
android.plugin.sdkDirectory
Я был в состоянии экспортировать файл Jar в Android Studio с помощью этого учебника:
"как экспортировать банку из-Студио &ldquo Андроид;Я обновил мой ответ, чтобы включить все шаги для экспорта банку в Android студия:
Создать проект Android-приложения, перейдите к приложения-и GT;строить.Gradle в
изменить следующие параметры в этот файл:
изменения *подать заявку на плагин: 'сом.андроид.приложение' на применить плагин: 'сом.андроид.библиотека'**
удалить следующее: ид_приложения, код versionCode и versionname
Добавить следующий код:
// задача предназначена для удаления старой банке deleteOldJar задач(типа: удалить){ удалить 'выпуск/AndroidPlugin2.опарник' }
// task to export contents as jar
task exportJar(type: Copy) {
from ('build/intermediates/bundles/release/')
into ('release/')
include ('classes.jar')
rename('classes.jar', 'AndroidPlugin2.jar')
}
exportJar.dependsOn(deleteOldJar, build)
Дон'т забудьте нажать на кнопку Синхронизация теперь в этот файл (в правом верхнем углу или используйте кнопку Синхронизация).
нажать на вкладку Gradle в (обычно посередине справа) и прокрутите вниз до exportjar
Если вы видите успешными сообщение в окне выполнить, используя обычный проводник пойдет на экспорт jar, используя путь: C:\Users\name\AndroidStudioProjects\ProjectName\app\release вы должны увидеть в этом каталоге файл jar.
Удачи :)
Здесь'ы еще один, несколько иной ответ с несколькими улучшениями.
Этот код принимает .право банку из .ААР. Лично, что дает мне немного больше уверенности в том, что биты, которые перевозятся через .баночки такие же, как те, что отправлены через .ААР. Это также означает, что если вы'повторно использовать ProGuard, выход jar будет обфусцирован, как хотелось бы.
Я также добавил супер "и makeJar" и задач, что делает баночки для всех вариантов сборки.
task(makeJar) << {
// Empty. We'll add dependencies for this task below
}
// Generate jar creation tasks for all build variants
android.libraryVariants.all { variant ->
String taskName = "makeJar${variant.name.capitalize()}"
// Create a jar by extracting it from the assembled .aar
// This ensures that products distributed via .aar and .jar exactly the same bits
task (taskName, type: Copy) {
String archiveName = "${project.name}-${variant.name}"
String outputDir = "${buildDir.getPath()}/outputs"
dependsOn "assemble${variant.name.capitalize()}"
from(zipTree("${outputDir}/aar/${archiveName}.aar"))
into("${outputDir}/jar/")
include('classes.jar')
rename ('classes.jar', "${archiveName}-${variant.mergedFlavor.versionName}.jar")
}
makeJar.dependsOn tasks[taskName]
}
Для любознательных читателей, я старался определить правильный переменных и параметров, что com.андроид.плагин библиотека использует для название .AAR файлы. Я, наконец, нашел их в проект Android с открытым исходным кодом здесь.
Мы можем экспортировать файл jar для проекта библиотеки Android без файлы ресурсов Android-студия. Это также требование, что я недавно познакомилась.
1. Конфигурации построения.файл Gradle
// Task to delete old jar
task clearJar(type: Delete){
delete 'release/lunademo.jar'
}
// task to export contents as jar
task makeJar(type: Copy) {
from ('build/intermediates/bundles/release/')
into ('build/libs/')
include ('classes.jar')
rename('classes.jar', 'lunademo.jar')
}
makeJar.dependsOn(clearJar, build)
2. Запустить makeJar gradlew под корень проекта
Вы увидите свои либы в папку как построить/библиотеки/ если вы, к счастью.
============================================================
Если вы встретили вопрос как "Гнездо тайм-аут исключение" в командной строке, как показано ниже,
Вы можете следовать этим шагам, чтобы открыть окно Gradle в правой части и нажмите "makeJar" на Андроид Студио,как это,
Потом поехали строить/либы реж, вы увидите, что ваш jar-файл.
Надеемся, что это полезно для U.
Удачи @.@
Луна