android jar/aar冲突:Program type already present

一、多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中


 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值