用过eclipse的都知道,它有一个Export的功能可以导出jar包,非常方便。那么Android Studio如何实现这一点呢? 其实很简单,我们在用Android Studio构建项目的时候,它就会帮我们编译源码并生成jar包,只不过这个jar包是个中间产物,最终还是要和其它资源文件一起合成最终的安装包。既然知道了这一点,那么问题中如何制作jar包的表述或许就不太准确了,确切的说应该是我们如何找到这个中间产物?甚至为了更便捷的取用,还可以把它重命名一下重新放个位置。步骤如下:
1.确定jar包的位置
jar包所在的位置随着gradle版本的不同而发生改变。根据网上相关信息来看应该是经历了三次变化:
- build/intermediates/bundles/release/
- build/intermediates/packaged-classes/release/
- build/intermediates/aar_main_jar/release/
至于分别在哪个版本发生的变化我不是很清楚,所以只讨论当前所在的位置吧,也就是上面的第3个——build/intermediates/aar_main_jar/release/。 我当前的构建环境:gradle和AGP(android gradle plugin)版本均为7.0.2。
注意:本文中讨论的jar包路径都是相对于library module而言。
2.移动jar包并重命名
这一步需要创建gradle任务。
打开目标library module的build.gradle文件,在android构建块的同级位置输入以下脚本代码:
task deleteJar(type: Delete) {
delete 'build/outputs/jar/yourlib.jar'
}
task createJar(type: Copy) {
from('build/intermediates/aar_main_jar/release/')
into('build/outputs/jar/')
include('classes.jar')
rename('classes.jar', 'yourlib.jar')
}
createJar.dependsOn(deleteJar, build)
注意:其实在移动jar包前,需要先生成jar包,即需要先构建项目(只构建library module也行),而且上面取的是release目录下的jar,构建前要选择release类型。但是createJar.dependsOn(deleteJar, build) 已经帮我们依赖构建行为了,所以直接执行createJar任务即可。
同步下项目,从Android Studio的右侧打开gradle工具窗口,在library module->Tasks->other下,你将看到两个新任务:createJar 和 deleteJar。
双击createJar任务,待任务执行完成后你可以在指定的路径下看到已经重命名的jar包。
参考:How to make a .jar out from an Android Studio project
|