日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

AndroidStudio導(dǎo)出jar包

 昵稱597197 2015-10-27

不像在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文件如下:

  1. buildscript {  
  2.     repositories {  
  3.         mavenCentral()  
  4.     }  
  5.     dependencies {  
  6.         classpath 'com.android.tools.build:gradle:0.12.+'  
  7.     }  
  8. }  
  9. 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. }  

因?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é)果成功了,如下:

  1. buildscript {  
  2.     repositories {  
  3.         mavenCentral()  
  4.     }  
  5.     dependencies {  
  6.         classpath 'com.android.tools.build:gradle:0.12.+'  
  7.     }  
  8. }  
  9.   
  10. //定義一個(gè)函數(shù),target是生成jar包的文件名,classDir是class文件所在的文件夾  
  11. def makeJar(String target,String classDir){  
  12.     exec{  
  13.         executable "jar"   //調(diào)用jar  
  14.         args "cvf",target  
  15.         args "-C", classDir  
  16.         args "","."  
  17.   
  18.   
  19.     }  
  20. }  
  21.   
  22. //新建一個(gè)task,名為buildLib,依賴build(build是一個(gè)自帶的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. }  

現(xiàn)在我們?cè)赩olley文件夾下運(yùn)行buildLib這個(gè)task就行了
gradlew buildLib
*_*成功了吧..具體更多的細(xì)節(jié)的話,你們可以去官網(wǎng)找下答案,或者留言問我也可以。。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多