文档章节

使用AndroidStudio导出jar包

Bonjourss
 Bonjourss
发布于 2016/09/01 11:14
字数 633
阅读 42
收藏 0

学习网址: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
*_*成功了吧..具体更多的细节的话,你们可以去官网找下答案,或者留言问我也可以。。

本文转载自:http://blog.csdn.net/beijingshi1/article/details/38681281

Bonjourss
粉丝 2
博文 37
码字总数 2312
作品 0
虹口
程序员
私信 提问
AndroidStudio封装SDK的那些事

首先SDK是提供给别人调用的工具。所以常见的SDK都是以jar包,so库,aar包等方式导入APP项目中。然后提供一些公开的API供接入方调用。所以在Androidstudio中如果需要生成jar或者aar,就需要将...

尘封的落叶
2018/06/23
0
0
AndroidStudio怎样导入jar包

AndroidStudio用于开发安卓Apk非常地方便,但是它的很多设置都与Eclipse不一样。比如给项目中添加新的jar,在AndroidSutdio中就没有Java编译路径的入口,就很难找到添加jar的入口。不过换一种...

傲娇字符
2015/08/03
76
0
android studio基本使用零碎整理

android studio进行单元测试:http://jingyan.baidu.com/article/454316ab7a5711f7a7c03a9a.html AndroidStudio怎样导入jar包:http://jingyan.baidu.com/article/e6c8503c7190b7e54f1a1893......

智能小松鼠
2015/07/03
312
0
AndroidStudio设置package presentation

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/mynameishuangshuai/article/details/52805878 最近有小伙伴问我And...

猴子搬来的救兵Castiel
2016/10/13
0
0
AS 升级之Gradle's dependency cache may be corrupt问题解决办法

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/60589629 问题: 今天,发现自己的AndroidStudio可以升...

紫雾凌寒
2017/03/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
56分钟前
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
59分钟前
5
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部