AndroidStudio导出jar包

摘要:
Android Studio导出jar包-Android-Dimensional Cube-计算机知识和技术交互通信平台与Eclipse不同,您可以直接导出jar包。在Internet上下载Volley源代码并导出jar包作为示例。在一个Android Library项目中,我将他的等级版本修改为0.12+,因为我是最新的等级2.0。但这不是我们想要的。我希望Android Studio帮助我自动生成jar包。这需要我们建立gradle的官方网站,显示任务和项目是gradle最重要的事情。我最初的想法是创建一个任务并调用jar命令来帮助我生成jar包。结果如下:viewsourceprint?

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包第1张

免责声明:文章转载自《AndroidStudio导出jar包》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WMI概述VSFTP服务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

获取Android版本

JAVA: 摘自http://stackoverflow.com/questions/3423754/retrieving-android-api-version-programmatically 从1.6开始, int currentapiVersion = android.os.Build.VERSION.SDK_INT; if (currentap...

build-essential

linux操作系统上面开发程序, 光有了gcc 是不行的它还需要一个 build-essential软件包作用是提供编译程序必须软件包的列表信息 也就是说 编译程序有了这个软件包它才知道 头文件在哪 才知道库函数在哪还会下载依赖的软件包 最后才组成一个开发环境当然 build-essential包 安装时 需要的依赖包 有些你用不上 软件包: build-...

npm run build ERROR in xxx.js from UglifyJs

npm run dev可以正常运行项目,在npm run build的时候,报错。其中就有一行提示:npm run build ERROR in xxx.js from UglifyJs  网上搜了相关的文章,都说是babel配置有问题,在【.babelrc】文件中添加"presets": ["es2015"]就好了。 可是我的配置里已经配置了呀~ 继续查...

Android Studio最新配置教程2016

http://blog.csdn.net/wen_demo 一、Android studio 基本简单介绍 1.Android studio和Eclipse的差别: 1、Studio中有Project和Module的概念,Studio中一个窗体仅仅能有一个项目,即Project,代表一个workspace。可是一个Project能够包括多个Modul...

在鲲鹏916服务器上编译和安装dpdk踩坑

 无法爬楼楼的可以从这里下: http://static.dpdk.org/rel/ [root@kunpeng82 data1]# cat /etc/default/grub |grep GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX="crashkernel=auto" GRUB_CMDLINE_LINUX_DEFAU...

Maven中的Build标签

  [1] 基本元素 <build> ​ <finalName>maven-build-demo</finalName> <defaultGoal>install</defaultGoal> <directory>${basedir}/t...