一、多Module引用同样的jar包,导致编译错误
1. 第一个module不发生改变
2. 另一个module引入jar的方式为compileOnly,这样改module引入的jar在编译时候可以使用,即代码不会报错,生成的apk不会包含该jar
3. 使用compileOnly必须删除implementation fileTree(include: ['*.jar'], dir: 'libs') 不然lib下的jar均按照implementation 方式引入到Module
//删除下面这行
implementation fileTree(include: ['*.jar'], dir: 'libs')
//添加
compileOnly files('libs/xxx.jar)
二、单Module引用的不同jar/aar,存在冲突文件
整体思路:将jar/aar以Module的方式引用
1、File-New Module-Import JAR/AAR Package,然后选择你需要导入的jar/aar,finish
2、app的build.gradle添加Module的引用,
implementation project(':xxx')
3、如果出现以下问题:
More than one file was found with OS independent path 'lib/armeabi-v7a/libA3AEECD8.so'
那么在app的build.gradle中,android节点下添加如下代码:
packagingOptions{ pickFirst 'lib/armeabi-v7a/libA3AEECD8.so' }
意思为只加载第一次的so文件到apk中