一般我們的library都有使用到第三方的jar包,在上一篇文章中,我介紹的打包方式是不能將libs目錄下的jar包和library下面的class文件一并打包進(jìn)去的。
下面,我介紹兩種方法來解決這個(gè)問題。
(1)使用Apache Ant工具,進(jìn)行jar包合并
下載安裝后,需要進(jìn)行環(huán)境變量的配置。
配置完環(huán)境變量后,可以檢查一下是否配置成功。
(1)打開cmd,輸入ant,回車
如果出現(xiàn)下面的內(nèi)容,就代表是配置成功了。
(2)接下來,我們創(chuàng)建build.xml文件,我是在D:\apache-ant-1.10.5目錄下創(chuàng)建的。
build.xml文件的配置如下,大家可以根據(jù)自己的需求,進(jìn)行修改
(3)接下來,我們就把library打包成功的jar包,和library的libs目錄下的jar都拷貝到D:\jar目錄下。
然后,使用cmd操作下面的指令,進(jìn)行jar包的合并。
(4)D:\jar目錄下,就可以看到合并的jar包了。
(2)使用library的build.gradle進(jìn)行相應(yīng)的配置
(1)把所有需要合并的jar包都配置到zipTree里面去
(2)在Terminal下執(zhí)行g(shù)radlew makeJar,就可以實(shí)現(xiàn)library打包的時(shí)候,并將libs下的jar包打包到新的jar包中
(3)最后我們?cè)趌ibrary的build目錄下,就可以找到生成的jar包了
可能會(huì)遇到的問題
在執(zhí)行了gradlew makeJar指令后,會(huì)報(bào)找不到release目錄下classes.jar文件的錯(cuò)誤。這個(gè)時(shí)候,我們?nèi)uild\intermediates\bundles目錄下,發(fā)現(xiàn)沒有找到release文件夾。這個(gè)時(shí)候,我們可以去到library\Tasks\other,雙擊bundleRelease,來生成release文件夾及其目錄下的classes.jar文件。
然后再次在Terminal下,執(zhí)行g(shù)radlew makeJar指令,就可以生成jar包了。
如果jar包是提供給其他公司使用,可能大佬會(huì)要求,jar包的內(nèi)容需要進(jìn)行混淆。
在此,感謝下面這些文章提供的幫助