Android 查看jar包之间依赖的方法,解决包冲突问题,妈妈再也不用担心了

有时候,我们的工程大了,或者引用的外面的工具包,开源jar包或者推送等jar包,开开心心的想集成一下,可是一下子来了,奔溃了,jar包之间冲突,常见的support-v4包不同版本之间的冲突。

gradle提供了可以查看library之间依赖的关系,下面我们首先先搭环境。

一、配置环境

Android Studio中使用的 gradle 版本一般不是最新版,所以在使用其自带的 Terminal 时容易报版本过低的错误,为了方便使用,我从 gradle 
官网下载了最新版的 gradle ,然后配置好 gradle 的环境变量以方便使用。

二、gradle task 相关内容

gradle 本身不提供查看 library 依赖关系的命令,幸好 Android Studio 提供了可供查看的 task ,位于各个 module 的 help 任务堆中,如下图:

图一

图二

双击 dependencies 执行该任务,可以看到在 gradle console 中均没有得到依赖关系,结果如下图所示:

图三

从上图可以看出无论我们执行哪个 module 下的 dependencies 其结果都是相当于在 Root project 执行了该任务;那么在 app project 或者 test01library project 中执行该 dependencies 任务呢?此时就需要我们通过命令行的方式执行 dependencies 了。

配置好环境后,首先cmd 进入当前你的工程的核心module路径,测试了下:gradle dependencies 在gradle 4.1下没有打印出依赖关系,使用了 gradle -q dependencies 就ok了

123836_Rp2j_3318187.png

因自己搭框架的时候使用了比较多的工具和开源的工具,这儿遇到的冲突时support-v4包的和别的jar包里含有的support-v4冲突了,最后解决方法:

124340_qGvK_3318187.png

解决包冲突,关键还是可以看到包之间依赖关系,比较完美解决问题。

附:

gradlew :模块名称:dependencies

或者使用gradle窗口自带dependencies直接看依赖树,可以很好查看包的依赖情况

2c5c61558f972351962d93879da35e01bd6.jpg

经常会遇到support包和比如appcompat包下的support包冲突的情况,比如butterknife里面也有support包,一般可以这样处理:

compile ('com.jakewharton:butterknife:8.8.1'){
        exclude group: 'com.android.support'
    }

转载于:https://my.oschina.net/u/3318187/blog/1806735

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值