问题描述
开发调用jenkins job执行Android编译打包,然后从jenkins控制台看到如下错误:
研发反馈,将原来代码中的一个jar包引用改成了aar包引用。
问题分析
- 查看研发的build.gradle文件:对于aar文件的引用为:
api(name: ‘ocrComponentV1.0.2’, ext: ‘aar’) - 开始怀疑是路径不正确导致,在当前工作区corecomponent目录下检查发现libs/ocrComponentV1.0.2.aar存在,修改配置文件调试api中文件引用路径,发现写得没有问题。
- 几经调试,还是找不到问题所在,但是推测问题肯定是这个路径不正确。
- 上网搜索aar文件引用方法:https://www.jianshu.com/p/403dc46ec18f
- repositories {
flatDir {
dirs ‘libs’
}
}
dependencies {
//引用方法一
compile(name:‘materialiconlib-release’, ext:‘aar’)
} - 跟研发代码比较后发现,研发将flatDir 中的‘libs’ 写成了’/libs’. 同时,引用使用compile而不是api。
问题解决
找到上面的问题后,在jenkins上直接修改配置文件,编译成功, 通知开发人员修改代码并入库,前面的问题解决,后来又出现jar包找不到问题,仔细检查log发现是jar包版本号v字母大小写问题,windows不区分大小写,但是linux区分大小写,通知开发修改后, jenkins编译打包成功。(个人对Android开发不了解,不然应该更容易发现错误)。