Android aar或jar中删除某个包或类

当项目中引入了包含相同包名不同版本的百度广告SDK时,导致Program type already present冲突。通过排除AAR中特定的包(如com.baidu)来解决冲突。可以使用GitHub上的ExcludeAar项目,通过Gradle脚本自动化完成解压、删除、重新打包的过程。在遇到'Failed to transform file'错误时,执行Clean Project后再运行即可解决问题。
摘要由CSDN通过智能技术生成

情况是这样的

我的项目中使用到了百度广告的SDK:BaiduMob1.jar

项目中使用到一个第三方的SDK,这个SDK中的一个aar里面也包含了BaiduMob2.jar

BaiduMob1.jarBaiduMob2.jar是不同版本的广告jar包,但是里面的包名是一样的com.baidu.mobs,这个时候会导致一个冲突:

Error: Program type already present: com.baidu.mobads.xxxxxx

解决这个冲突的逻辑只有一个,要么删除BaiduMob1.jar要么删除BaiduMob2.jar

当然删除BaiduMob1.jar是很容易的,因为BaiduMob1.jar在你自己的项目里面想删就删。

但是实际情况是BaiduMob2.jar被别人打包在aar中,它可能是一个非常old版本,这样就只能被这个第三方所限制。所以我们理想的方法还是删除第三方aar中的BaiduMob2.jar

移除aar中的jar中的com.baidu

com.baidu 这个包就是我们要删除的对象,给你个文件结构图自己体会:

在这里插入图片描述

sdk_player.aar --> class.jar --> com.b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值