AndroidStudio将library打包成jar包遇到的问
一般我们的library都有使用到第三方的jar包,在上一篇文章中,我介绍的打包方式是不能将libs目录下的jar包和library下面的class文件一并打包进去的。
下面,我介绍两种方法来解决这个问题。
(1)使用Apache Ant工具,进行jar包合并
下载安装后,需要进行环境变量的配置。
配置完环境变量后,可以检查一下是否配置成功。
(1)打开cmd,输入ant,回车
如果出现下面的内容,就代表是配置成功了。
(2)接下来,我们创建build.xml文件,我是在D:\apache-ant-1.10.5目录下创建的。
build.xml文件的配置如下,大家可以根据自己的需求,进行修改
(3)接下来,我们就把library打包成功的jar包,和library的libs目录下的jar都拷贝到D:\jar目录下。
然后,使用cmd操作下面的指令,进行jar包的合并。
(4)D:\jar目录下,就可以看到合并的jar包了。
(2)使用library的build.gradle进行相应的配置
(1)把所有需要合并的jar包都配置到zipTree里面去
(2)在Terminal下执行gradlew makeJar,就可以实现library打包的时候,并将libs下的jar包打包到新的jar包中
(3)最后我们在library的build目录下,就可以找到生成的jar包了
可能会遇到的问题
在执行了gradlew makeJar指令后,会报找不到release目录下classes.jar文件的错误。这个时候,我们去build\intermediates\bundles目录下,发现没有找到release文件夹。这个时候,我们可以去到library\Tasks\other,双击bundleRelease,来生成release文件夹及其目录下的classes.jar文件。
然后再次在Terminal下,执行gradlew makeJar指令,就可以生成jar包了。
如果jar包是提供给其他公司使用,可能大佬会要求,jar包的内容需要进行混淆。
在此,感谢下面这些文章提供的帮助