Android Studio Library打jar包问题总结

时间:2022-10-23 08:31:27

项目组所在的任务是开发SDK,所以在AS上创建了一个Library项目开发;之前都是用eclipse,导出jar包然后混淆即可。但是AS对我来说还是手生,于是在打包发布jar包的过程中遇到了各种奇葩问题,折腾了半天总算解决。现在就把解决的过程及遇到问题的解决方案总结下来,以备不时之需。

  1. 怎么将library打成jar包?

    在你Library所在的build.gradle创建两个gradle的task如下:

//删除旧的jar的Task:deleteOldJar 名字随便写
task deleteOldJar(type: Delete) {
delete 'build/outputs/yourName.jar'
}

//导出新的jar,exportJar也可是别的名字

task exportJar(type: Copy) {
//原地址

from('build/intermediates/bundles/release/')
//导出后的地址

into('build/outputs/')
include('classes.jar')
//重命名jar
rename('classes.jar', 'venvy_live_1.0.jar')
}

exportJar.dependsOn(deleteOldJar, build)

配置好之后就可以在命令行或者AS自带的Terminal窗口里面,然后运行gradle exportJar即可!

但是配置上是对的,但是运行一下总会出现这样或者那样的问题,再说问题之前先熟悉下Library的结构:
from(‘build/intermediates/bundles/release/’)
这个from语句里面的目录是在你Library所在的目录里,如图:
Android Studio Library打jar包问题总结
同样的into(‘build/outputs/’)的outputs在也是对应着Library所在目录下的build/outputs/文件。

在我运行gradle exportJar的时候,遇到的第一个问题如图所示:
Android Studio Library打jar包问题总结

然后我就在*上找答案,发现网上说的答案我这边都对应着指向都是2.14.1,怎么也没有2.2.1啊。怎么回事儿呢?网上说的答案不外乎如下几个地方:
File–>Settings–>Build,Exceution,Deployment–>Gradle:
Android Studio Library打jar包问题总结
以及Open setting Modules–>Project里面也确保是2.14.1:
关键是我的都是指向2.14.1啊,怎么还是还是会报这个错呢?乱七八糟的捣鼓了一阵子还是没弄对。甚至卸载了AS重新安装还是不行。然后我就想当初在安装Gradle的时候配置了环境变量,是不是这个原因?
然后我打开环境变量一看,里面的path关于Gradle的路径赫然是指向了gradle-2.2.1所在的目录,果断改成gradle-2.14.1所在的目录(gradle-2.14.1这个目录在我新安装的AS的gradle目录下自动安装的):
Android Studio Library打jar包问题总结
重启电脑,然后继续gradle exportJar,果然上图中出现的错误解决了!!!!

但是又遇到了另外一个问题如下:
Android Studio Library打jar包问题总结

那么就按照提示来吧,在Library的build.gradle的android节点里面添加了:

lintOptions{
abortOnError false
}

再次运行gradle exportJar,偶了,果然在build/outputs文件夹下生成我我需要的jar.

关于Gradle要了解的还很多,今天关于Library的打jar包的问题就写到这儿吧,算是个笔记,别以后再出现类似的问题给忘了。