zoukankan      html  css  js  c++  java
  • [Android Pro] AndroidStudio导出jar包

    reference :  http://blog.csdn.net/beijingshi1/article/details/38681281

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

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

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

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

    在Volley项目工程中,我修改了下他的gradle版本,改为0.12+,

    因为我是最新的gradle2.0。现在它的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']  
            }  
        }  

    因为再导入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包,结果成功了,如下:

        buildscript {  
            repositories {  
                mavenCentral()  
            }  
            dependencies {  
                classpath 'com.android.tools.build:gradle:0.12.+'  
            }  
        }  
          
        //定义一个函数,target是生成jar包的文件名,classDir是class文件所在的文件夹  
        def makeJar(String target,String classDir){  
            exec{  
                executable "jar"   //调用jar  
                args "cvf",target  
                args "-C", classDir  
                args "","."  
          
          
            }  
        }  
          
        //新建一个task,名为buildLib,依赖build(build是一个自带的task)  
        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']  
            }  
        }  
    

    现在我们在Volley文件夹下运行buildLib这个task就行了
    gradlew buildLib
    *_*成功了吧..具体更多的细节的话,你们可以去官网找下答案,或者留言问我也可以。。

  • 相关阅读:
    1.BMap(百度地图)第二次加载显示不全
    SpringMVC的拦截器
    装饰者模式
    java产生随机数
    VS 常用快捷键
    给包含compid列且值为null ,表的行数据赋值--
    遍历数据库,删除包含指定列的表的行数据-
    DataTable select根据条件取值
    临时表汇总金额
    Redirect url 路径简单介绍
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/4817844.html
Copyright © 2011-2022 走看看