项目开发需要集成其他SDK时实现功能是,避免不了需要引用aar文件。
主工程(即app)引用aar文件时,分为两步:
一,将aar文件添加到libs文件夹下。
二,修改app/build.gradle文件:
1.添加代码
//引入aar必须加入这句话
repositories {
flatDir {
dirs 'libs'
}
}
2. 修改dependencies
在dependencies中添加关联:
implementation(name:'文件名',ext:'aar')
在Module中引用aar文件时,分三步:
第一步和第二步跟之前一样,对应修改在module/libs和module/build.gradle。
第三步:要在引用这个Module的app或者其它Module的build.gradle文件中添加引用,如
repositories {
flatDir {
dirs 'libs', '../worktable/libs'
dirs '../xylink/libs'
}
其中worktable、xylink都是我项目中的子module。换成你自己的module名称即可。
不添加引用会报错的哦。
第三块呢,就是最后一个知识点了。
上面两块都照做了,但项目还是报错,报错情况如图:
还是有Add library 'Gradle::*****:@aar' to claspath的问题。
解决办法:
在Module中引用aar文件时,做完了上面的三步后,还要在主app中的build.gradle文件的dependencies{}中添加aar的引用。
引用如下:
//引入aar
implementation(name:'xylink-sdk-release-2.27.7',ext:'aar')
可能有同学会问了,这个引用不是在module中引用了吗,为啥这里还要再次引用?
答:app中要使用module中aar的api,这里不添加引用,是解析不了的。因为在不同的module中(这里把app也理解为module)。