那些年遇到的问题--依赖冲突

起因

我们的aar使用华为的某个功能,依赖的库比较新,其中华为的base库版本为4.0.2,第三方使用华为push,且版本比较旧,华为的base库为2.6.3,在接入我们的aar时产生了冲突。
通过如下命令可以查看依赖树:

gradlew :app:dependencies

通过依赖树可以看到,两者版本不一致
在这里插入图片描述

解决方式

1.去除其中的一个base库

  implementation 'com.huawei.android.hms:push:2.6.3.301', {
        exclude group: 'com.huawei.android.hms',module:'base'
    }

2.统一版本

configurations.all {
    //循环一个个的依赖库
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        //获取当前循环到的依赖库
        def requested = details.requested
        // 查找要作处理的依赖的group名
        if (requested.group == 'com.huawei.android.hms') {
            // 查找要作处理的依赖的module名
            if (requested.name.startsWith("base")) {
                //这里指定需要统一的依赖版本
                details.useVersion '4.0.3.302'
//                details.useVersion '2.6.1.301'
            }
        }
    }
}

后续处理

以上方式是虽然能解决base库冲突的问题,但是由于base库更新了,导致第三方的上层的旧版本push库依赖不能兼容更新以后的base库,最终只能第三方更新华为push库。

相关阅读

1.Android gradle依赖冲突解决办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值