Sag*_*pre 82 android android-studio
我已经下载了一些库源,并希望使用Android Studio将其导出为Jar文件.有没有办法使用Android工作室导出到jar文件?
编辑:
我想导出为jar的库是一个Android库.它被称为"StandOut",可以从GitHub下载. https://github.com/pingpongboss/StandOut
Ale*_*tin 83
无法将Android库导出为jar文件.但是,可以将其作为aar文件导出.Aar文件是Android库的新二进制格式.Google I/O中有关于它们的信息,即新建系统视频.
首先,在Android Studio中构建库,或者从gradle build库的根目录中发出命令行.
这将导致<yourlibroot>/libs/build/yourlib.aar文件.
此aar文件是库的二进制表示形式,可以作为依赖项目添加到项目而不是库中.
要将aar文件添加为依赖项,您必须将其发布到maven中心或本地maven存储库,然后在项目文件中引用aar gradle.build文件.
但是,这一步有点令人费解.我在这里找到了一个很好的解释:
http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds
7hn*_*hny 44
我能够.jar使用此解决方案中的方法为编译文件构建库源代码:https:
//stackoverflow.com/a/19037807/1002054
以下是我所做的细分:
在可能的情况下,它是一个排球图书馆
我使用的是Android Studio 0.3.7.我在这一步中遇到了一些问题,即gradle在我能够导入Volley库源代码之前我必须从新的android项目中复制文件夹,这可能会因您使用的源代码而异.
build.gradle文件// 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)
Run Code Online (Sandbox Code Playgroud)
gradlew makeJar从项目根目录运行命令.我的情况我不得不将新的android项目中的文件gradlew.bat和gradle文件复制到我的库项目根目录中.您应该myCompiledLibrary.jar在build\libs目录中找到已编译的库文件.
我希望有人觉得这很有用.
编辑:
虽然这有效,但在编译具有多个模块的项目时会遇到重复的库异常,其中多个模块(包括应用程序模块)依赖于同一个jar文件(例如,模块具有自己的库目录,在build.gradle给定模块中引用) .
如果你需要在多个模块中使用单个库,我建议使用这种方法: Android gradle build和支持库
Avi*_*vin 37
从Android Studio V1.0开始,jar文件在以下项目链接中可用:
debug ver:"your_app"\ build\intermediates\bundles\debug\classes.jar
发布版本:"your_app"\ build\intermediates\bundles\release\classes.jar
JAR文件是在构建过程中创建的,在Android Studio GUI中,它来自Build-> Make Project,而来自CMD,它是"gradlew build".
And*_*rey 31
在build.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'
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以执行gradle:./gradlew clean javadocRelease jarRelease这将构建您的Jar以及javadoc jar到build/libs/文件夹中.
编辑:使用android gradle工具1.10.+获取android SDK目录与以前不同.你必须改变以下(感谢Vishal!):
android.sdkDirectory
Run Code Online (Sandbox Code Playgroud)
代替
android.plugin.sdkDirectory
Run Code Online (Sandbox Code Playgroud)
RMD*_*Dev 11
我可以使用本教程在Android Studio中导出jar文件:https: //www.youtube.com/watch?v = 1i4I-Nph-Cw"如何从Android Studio导出Jar"
我更新了我的答案,包括在Android Studio中导出JAR的所有步骤:
1)创建Android应用程序项目,转到app-> build.gradle
2)在此文件中更改以下内容:
修改apply plugin:'com.android.application'来应用插件:'com.android.library'
删除以下内容:applicationId,versionCode和versionName
添加以下代码:
Run Code Online (Sandbox Code Playgroud)// Task to delete old jar task deleteOldJar(type: Delete){ delete 'release/AndroidPlugin2.jar' }
// 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)
Run Code Online (Sandbox Code Playgroud)
3)不要忘记在此文件中单击"立即同步"(右上角或使用同步按钮).
4)单击Gradle选项卡(通常在右中)并向下滚动到exportjar
5)当你看到构建成功的在运行窗口消息,使用正常的文件浏览器去出口罐子使用路径:C:\ Users \用户名\ AndroidStudioProjects \项目名\程序\释放 你应该在这个目录中看到你的jar文件.
祝好运 :)
这是另一个略有不同的答案,有一些增强功能.
此代码将.jar从.aar中取出.就个人而言,这让我更有信心通过.jar发送的位与通过.aar发送的位相同.这也意味着如果您使用ProGuard,输出jar将根据需要进行模糊处理.
我还添加了一个超级"makeJar"任务,它为所有构建变体制作了jar.
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]
}
Run Code Online (Sandbox Code Playgroud)
对于好奇的读者,我努力确定com.android.library插件用于命名.aar文件的正确变量和参数.我终于发现他们在Android开源项目在这里.
| 归档时间: |
|
| 查看次数: |
100011 次 |
| 最近记录: |