不像在Eclipse,可以直接導(dǎo)出jar包。AndroidStudio只可以生成aar包。
在網(wǎng)上看到許多朋友問怎么可以像Eclipse一樣導(dǎo)出jar包,其實(shí)我們只要知道它的原理就可以了。
用jar命令就可以打包你所需要的資源,并指定jar包名。
在網(wǎng)上下載Volley源代碼,導(dǎo)出jar包為例子。
在Volley項(xiàng)目工程中,我修改了下他的gradle版本,改為0.12+,
因?yàn)槲沂亲钚碌膅radle2.0?,F(xiàn)在它的build.gradle文件如下:
- buildscript {
- repositories {
- mavenCentral()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:0.12.+'
- }
- }
- apply plugin: 'com.andriod.library'
-
- android {
- compileSdkVersion 19
- buildToolsVersion = "20"
-
- sourceSets {
- defaultConfig {
- testPackageName 'com.android.volley.tests'
- }
-
- main {
- assets.srcDirs = ['assets']
- res.srcDirs = ['res']
- aidl.srcDirs = ['src']
- resources.srcDirs = ['src']
- renderscript.srcDirs = ['src']
- java.srcDirs = ['src']
- manifest.srcFile 'AndroidManifest.xml'
-
- }
-
- instrumentTest.setRoot('tests')
- instrumentTest.java.srcDirs = ['tests/src']
- }
- }
因?yàn)樵賹?dǎo)入Volley工程的時(shí)候,我選擇的是推薦的Gradle Wrapper,它的作用是使我們?cè)赨nix,windows平臺(tái)
下實(shí)現(xiàn)兼容。我用的是windows,所以先到達(dá)Volley的根目錄,Volley我下載到E:\下
cd e:\Volley
接著輸入命令:
gradlew clean build
就會(huì)看到Volley目錄下有一個(gè)build文件夾,在 build/intermediates/classes/release下,我們可以看到Java文件生成的class文件,我們只要用jar打包這個(gè)文件夾就可以了
輸入下面的命令,記得最后一個(gè)是'.',前面有空格。
jar cvf volley.jar -C build/intermediates/classes/release .
不懂什么意思的話,去
http://blog.sina.com.cn/s/blog_93d133c601013hdm.html看下。
如無(wú)意外的話你會(huì)在Volley文件夾下看到volley.jar。
但是這并不是我們想要的啊,我想AndroidStudio自動(dòng)的幫我搞好,生成jar包.
這就需要我們?cè)赽uild.gradle中設(shè)置了
由gradle官網(wǎng)可以知道,task和project是gradle最主要的東西,我當(dāng)初的想法就是,
建立一個(gè)task,調(diào)用jar命令幫我生成jar包,結(jié)果成功了,如下:
- buildscript {
- repositories {
- mavenCentral()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:0.12.+'
- }
- }
-
-
- def makeJar(String target,String classDir){
- exec{
- executable "jar"
- args "cvf",target
- args "-C", classDir
- args "","."
-
-
- }
-
-
- task buildLib(dependsOn:['build'])<< {
- makeJar("volley.jar","build/intermediates/classes/release")
-
-
- }
-
-
- apply plugin: 'android-library'
-
-
- android {
- compileSdkVersion 19
- buildToolsVersion = "20"
-
-
- sourceSets {
- defaultConfig {
- testPackageName 'com.android.volley.tests'
- }
-
-
- main {
- assets.srcDirs = ['assets']
- res.srcDirs = ['res']
- aidl.srcDirs = ['src']
- resources.srcDirs = ['src']
- renderscript.srcDirs = ['src']
- java.srcDirs = ['src']
- manifest.srcFile 'AndroidManifest.xml'
-
-
- }
-
-
- instrumentTest.setRoot('tests')
- instrumentTest.java.srcDirs = ['tests/src']
- }
- }
現(xiàn)在我們?cè)赩olley文件夾下運(yùn)行buildLib這個(gè)task就行了
gradlew buildLib
*_*成功了吧..具體更多的細(xì)節(jié)的話,你們可以去官網(wǎng)找下答案,或者留言問我也可以。。
