最近在做项目,要把另一个项目打包成Module集成到主工程,合并发生了冲突,原因是原来分开的两个项目都使用了BaseAdapter的aar文件,合到一起就冲突了。删掉其中任何一个要报错,怎么办?当然是上google上面搜。
在网上搜到了解决办法,
第1种解决办法
//在主工程build里加上下面代码
android {
repositories {
flatDir {
dirs 'libs',project(':包含aarModule名称').file('libs')
}
}
}
有些人看代码是不是大概明白了意思,主工程的libs和module之间联系在一起,这样主工程就可以访问到module里面的aar了。
需要注意的点
1.如果有很多个module都要用到aar,只需要在project的build.gradle文件中添加
allprojects {
repositories
flatDir {
dirs 'libs',project(':包含aar的Module名称').file('libs')
}
}
}
2.如果是主工程只有一个module只需要在app的build.gradle中加 上述代码
3.aar在module中必须用api引入
4.如果aar中有通过implementation
引入三方库,则主工程也需要引入一次。
api(name: 'aar名称', ext: 'aar')
第2种 解决办法
第二种就是把库放到远程 jcenter()库,等我实践了再说
待续。。。。