码迷,mamicode.com
首页 > 移动开发 > 详细

AndroidStudio导出jar包

时间:2015-01-26 15:00:07      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:

AndroidStudio导出jar包 - Android - 次元立方网 - 电脑知识与技术互动交流平台

不像在Eclipse,可以直接导出jar包。AndroidStudio只可以生成aar包。

在网上看到许多朋友问怎么可以像Eclipse一样导出jar包,其实我们只要知道它的原理就可以了。

用jar命令就可以打包你所需要的资源,并指定jar包名。

在网上下载Volley源代码,导出jar包为例子。

在一个Android-Library项目工程中,我修改了下他的gradle版本,改为0.12+,

因为我是最新的gradle2.0。现在它的build.gradle文件如下:

01.buildscript {
02.????repositories {
03.????????mavenCentral()
04.????}
05.????dependencies {
06.????????classpath ‘com.android.tools.build:gradle:0.12.+‘
07.????}
08.}
09.apply plugin: ‘com.andriod.library‘
10.?
11.android {
12.????compileSdkVersion 19
13.????buildToolsVersion = "20"
14.?
15.????sourceSets {
16.????????defaultConfig {
17.????????????testPackageName ‘com.android.volley.tests‘
18.????????}
19.?
20.????????main {
21.????????????assets.srcDirs?????? = [‘assets‘]
22.????????????res.srcDirs????????? = [‘res‘]
23.????????????aidl.srcDirs???????? = [‘src‘]
24.????????????resources.srcDirs??? = [‘src‘]
25.????????????renderscript.srcDirs = [‘src‘]
26.????????????java.srcDirs???????? = [‘src‘]
27.????????????manifest.srcFile ‘AndroidManifest.xml‘
28.?
29.????????}
30.?
31.????????instrumentTest.setRoot(‘tests‘)
32.????????instrumentTest.java.srcDirs = [‘tests/src‘]
33.????}
34.}

因为再导入Volley工程的时候,我选择的是推荐的Gradle Wrapper,它的作用是使我们在Unix,windows平台

下实现兼容。我用的是windows,所以先到达Volley的根目录,Volley我下载到E:\下

cd e:\Volley

接着输入命令:

gradlew clean build

就会看到Volley目录下有一个build文件夹,在 build/intermediates/classes/release下,我们可以看到Java文件生成的class文件,我们只要用jar打包这个文件夹就可以了

输入下面的命令,记得最后一个是‘.‘,前面有空格。

jar cvf volley.jar -C build/intermediates/classes/release .

不懂什么意思的话,去

http://blog.sina.com.cn/s/blog_93d133c601013hdm.html看下。

如无意外的话你会在Volley文件夹下看到volley.jar。

但是这并不是我们想要的啊,我想AndroidStudio自动的帮我搞好,生成jar包.

这就需要我们在build.gradle中设置了

由gradle官网可以知道,task和project是gradle最主要的东西,我当初的想法就是,

建立一个task,调用jar命令帮我生成jar包,结果成功了,如下:

01.buildscript {
02.????repositories {
03.????????mavenCentral()
04.????}
05.????dependencies {
06.????????classpath ‘com.android.tools.build:gradle:0.12.+‘
07.????}
08.}
09.?
10.//定义一个函数,target是生成jar包的文件名,classDir是class文件所在的文件夹
11.def makeJar(String target,String classDir){
12.????exec{
13.????????executable "jar"?? //调用jar
14.????????args "cvf",target
15.????????args "-C", classDir
16.????????args "","."
17.?
18.?
19.????}
20.}
21.?
22.//新建一个task,名为buildLib,依赖build(build是一个自带的task)
23.task buildLib(dependsOn:[‘build‘])<< {
24.????makeJar("volley.jar","build/intermediates/classes/release")
25.?
26.?
27.}
28.?
29.?
30.apply plugin: ‘android-library‘
31.?
32.?
33.android {
34.????compileSdkVersion 19
35.????buildToolsVersion = "20"
36.?
37.?
38.????sourceSets {
39.????????defaultConfig {
40.????????????testPackageName ‘com.android.volley.tests‘
41.????????}
42.?
43.?
44.????????main {
45.????????????assets.srcDirs ? ? ? = [‘assets‘]
46.????????????res.srcDirs ? ? ? ? ?= [‘res‘]
47.????????????aidl.srcDirs ? ? ? ? = [‘src‘]
48.????????????resources.srcDirs ? ?= [‘src‘]
49.????????????renderscript.srcDirs = [‘src‘]
50.????????????java.srcDirs ? ? ? ? = [‘src‘]
51.????????????manifest.srcFile ‘AndroidManifest.xml‘
52.?
53.?
54.????????}
55.?
56.?
57.????????instrumentTest.setRoot(‘tests‘)
58.????????instrumentTest.java.srcDirs = [‘tests/src‘]
59.????}
60.}

现在我们在Volley文件夹下运行buildLib这个task就行了

gradlew buildLib

*_*成功了吧..具体更多的细节的话,你们可以去官网找下答案,或者留言问我也可以。。

技术分享

AndroidStudio导出jar包

标签:

原文地址:http://www.cnblogs.com/seven1979/p/4250264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!