如何导出android studio程序,(技术)聊聊Android Studio 如何生成Jar

在你的项目开发过程中,肯定不少使用jar包,虽然当下通过依赖注入的方式引入资源类库更为流行,

但是Jar在项目中多多少少依然是剪不断理不烂的存在。接下来,这篇文章将详细的给你展示如何生成自己的jar包

友情提示,在看这篇文章之前建议你先买点零食放着,等你做出来自己的Jar包了,零食作为奖励犒劳自己

我这个友情提示是不是有点骚.....哈哈哈哈

好了,Android Studio发动起来.....

先创建一个HelloJarApplication项目,在这个项目中创建Module,然后将Module生成Jar包

465ede5cf79d

j1.png

接下来,在HelloJarApplication项目中创建一个Module,我们暂且命名为MyUtils吧

465ede5cf79d

j2.png

第3步,是在MyUtils这个Module中创建一些类文件,作为测试的API

465ede5cf79d

j3.png

第4步, 对MyUtils这个Module的build.gradle文件 进行配置,特别说明是Module的build.gradle文件,

而不是app,这个要搞清楚,配置的代码先贴这里一份,后续还有提供方式不同功能相同的代码

MyUtils模块build.gradle文件中的配置代码:

def _BASENAME ="myutils" // jar 的名称

def _VERSION ="-v1.0" // jar 的版本号

def _DestinationPath ="build/libs" //生成jar包的位置

def zipFile = file('build/intermediates/packaged-classes/release/classes.jar') //待打包文件位置

task deleteBuild(type:Delete){

delete _DestinationPath + _BASENAME + _VERSION +".jar" // 每次打包之前先自动删除原有的jar

}

task makeJar(type:Jar){

from zipTree(zipFile)

from fileTree(dir:'src/main',includes:['assets/**'])//将assets目录打入jar包

baseName = _BASENAME + _VERSION

destinationDir = file(_DestinationPath)

}

makeJar.dependsOn(deleteBuild, build)

特别说明:该段代码的放置位置: 与android 和 dependencies 节点同级

与android 和 dependencies 节点同级

与android 和 dependencies 节点同级

重要的话逼逼3遍!!!

如下图

465ede5cf79d

j4.png

Well,Well,Well,至此配置结束,接下来开始生成Jar

生成Jar的方式有两种

方式1

465ede5cf79d

5.png

465ede5cf79d

j5.png

结果如下

465ede5cf79d

j6.png

方式2

465ede5cf79d

j7.png

当然结果和方式1一样,恕不上图

至此,Jar成功生成,下面提供其他形式的配置代码,顺带说一下这个过程的坑

如果你配置了代码却没有生成Jar,恭喜你!!!不是恭喜你没成功喝倒彩,而是恭喜你,即将要找到原因了

duang,duang,duang.....敲黑板

这个待打包文件位置,存在着一个版本不同而导致 的不同问题

def zipFile = file('build/intermediates/packaged-classes/release/classes.jar')

Android Studio3.1.3之后的版本是: “build/intermediates/packaged-classes/release/”

Android Studio3.1.3之前的版本是: “build/intermediates/bundles/release/”

如果你配置了代码,并且反复检查配置没问题但却没有生成Jar,很大可能是这里出问题了

下面提供其他形式的配置代码

task makeJar(type: Copy) {

delete 'build/libs/myutils-v1.0.jar' // 删除之前生成的jar

from('build/intermediates//packaged-classes/release/') // 设置待打包文件位置

into('build/libs/') //生成jar包的位置 放入build/libs/目录下

include('classes.jar') // include ,exclude参数来设置过滤

rename ('classes.jar', 'myutils-v1.0.jar') // 将jar重命名为myjar.jar

}

makeJar.dependsOn(build)

特别说明:该段代码的放置位置: 与android 和 dependencies 节点同级

与android 和 dependencies 节点同级

与android 和 dependencies 节点同级

重要的话逼逼3遍!!!

好了,又是文字,又是图片,叨逼叨了这么多,现在是 2019-11-26 19:39:07,我要回家吃饭了

打完收工....诶,等等

QQ群放这里:578060039 我放了,你随意

打完收工,See you next article.....赛有娜拉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值