解决Android依赖冲突

问题说明: 什么情况下会产生依赖冲突?
当你引入了一个包的不同的版本的情况下会产生冲突。
如:你引入了

    implementation 'android.arch.lifecycle:runtime:1.1.0'
    implementation 'android.arch.lifecycle:extensions:1.1.0'

android.arch.lifecycle:extensions其实本身会引入android.arch.lifecycle:runtime, 因为是引入了 1.1.0 ,所以和我们自己本身引入的implementation 'android.arch.lifecycle:runtime:1.1.0'不会造成冲突。
但是如果

    implementation 'android.arch.lifecycle:runtime:1.1.0'
    implementation 'android.arch.lifecycle:extensions:1.0.0'

这样就会冲突了,因为同时引入了2个android.arch.lifecycle:runtime ,而且这2个分别为1.1.01.0.0


  1. gradle sync是成功的,但是运行会报错

     

    image.png

但是只是说了merge错误,但是没有具体指明是哪个包引用冲突了。这样的话就很难找了。

  1. 定位冲突

     

    image.png

在右侧栏中找到这个任务,双击执行。

image.png

这样我们就能定位是哪个包下。
目前确定是android.arch.lifecycle这个包可能引入了2个不同的版本。

下面我们在自己的app项目下 build.gradle中添加一个任务

task allDeps(type: DependencyReportTask) {}

来打印所有模块依赖。
还是在右侧栏的任务中找到 allDeps双击运行。

搜索

image.png

发现了引入2个不同的包的runtime.这时我们修改为

  implementation 'android.arch.lifecycle:runtime:1.1.0'
  implementation 'android.arch.lifecycle:extensions:1.1.0'

重新运行,就成功了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值