相关文章推荐
曾经爱过的猴子  ·  血脉被掠夺后,我无敌了漫画|官方在线漫画全集 ...·  1 年前    · 
冷冷的夕阳  ·  了解东京奥运会新竞赛项目:射击混合团体赛·  1 年前    · 
行走的甘蔗  ·  暑期档国漫来了!《冲出地球》定档7月16日_ ...·  1 年前    · 
曾经爱过的汉堡包  ·  风景G7和东风·瑞泰特EM10的区别买哪个好-易车·  1 年前    · 
安静的甘蔗  ·  最新最全攻略!今年,这所牛校要招什么样的学生 ...·  2 年前    · 
Code  ›  Android Studio查看第三方库依赖树开发者社区
软件 app android开发 glide
https://cloud.tencent.com/developer/article/1917479
风流倜傥的蛋挞
1 年前
用户9253515

Android Studio查看第三方库依赖树

原创
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
用户9253515
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > Android Studio查看第三方库依赖树

Android Studio查看第三方库依赖树

原创
作者头像
用户9253515
发布 于 2021-12-13 10:33:26
1.9K 0
发布 于 2021-12-13 10:33:26
举报
文章被收录于专栏: Android开发技术 Android开发技术

项目的开发过程中,我们或多或少都会引入第三方库,引入的库越多,越容易产生库之间的依赖冲突。

下面就拿我遇到的问题还原一下:

之前接人容联客服系统的时候,集成完成后进入客服页面发生闪退,我们回顾一下错误信息:

122.jpg
122.jpg

我们关键看一下报错代码:

java.lang.NoSuchMethodError: No virtual method into (Landroid/widget/ImageView;)Lcom/bumptech/glide/request/target/Target; in class Lcom/a/a/i; or its super classes (declaration of 'com.a.a.i' appears in/data/app/com.sami91sami.h5-1/base.apk)

我们可以根据报错,跳到报错的地方:

133.jpg
133.jpg

该报错的意思就是:没有

into(Landroid/widget/ImageView)

的方法,代码能编译通过,说明项目中肯定是添加依赖了,那怎么还会报这个错误呢?还没添加依赖之前,项目中也是使用的Glide进行图片的加载,会不会是项目中的Glide与容联Demo中的Glide有冲突呢。

我们可以根据报错的地方into方法,点进入看源码:

144.jpg
144.jpg

可以看到容联Demo使用的Glide版本是3.7.0。

再来看看项目中Glide使用的版本:

155.jpg
155.jpg

可以看到项目中使用的Glide版本是4.5.0。

这时就想到真的很大概率是两者的Glide版本有冲突了。

果然将容联Demo中的Glide版本改成4.5.0之后,编译运行进入客服界面后,没有报错了,完美解决。

这就是我之前遇到的库冲突的问题,这个问题有错误信息可以定位到是Glide库依赖的问题,要是遇到其它错误信息没那么显著的,那是不是就头疼了呢。

当时遇到这个问题,我并没有使用查看依赖树的方式,而是直接查看了源码,因为当时我并不知道还能这么干,幸运的是很快就定位到了问题所在,所以当我们升级第三方库或者引入新的第三方库时,库与库之间依赖冲突,我们需要知道每个第三方依赖库的依赖树,知道依赖树就清楚哪里冲突啦。

下面就记录下几种查看依赖树的方式:

方案一: Gradle task工具查看

1、点击Android studio面板右上角“Gradle”,如图所示:

1639041944906-gzb.png
1639041944906-gzb.png

2、按照如图目录找到dependencise双击,会在Run控制台输出打印,如图所示:

222.png
222.png

3、打印如图所示:

333.png
333.png

方案二:使用Gradle View插件

1、快捷键Ctrl+Alt+s,打开settings,然后点击按钮Plugins

444.png
444.png

2、搜索 Gradle View,然后安装,并重启Android Studio,我这是已经安装成功后的截图

555.png
555.png

3、点击菜单栏上View -> Tool Windows -> Gradle View,然后等待一会,就可以查看了。

666.png
666.png

如图所示:

777.png
777.png

方案三:Terminal控制台查看

在windows上Android studio Terminal中使用这个命令:

gradlew :app:dependencies(“app”为module名称)

在MacOS中使用下面的命令:

./gradlew :app:dependencies(“app”为module名称)

这个命令会将gradle执行的各个步骤都打印出来,包括releaseUnitTestRuntimeClasspath,releaseUnitTestCompileClasspath,releaseRuntimeClasspath,releaseCompileClasspath,lintClassPath,debugUnitTestRuntimeClasspath等等。

那么,我们可以配置configuration 参数只查看其中一个的依赖树就够了。

 ./gradlew :app:dependencies --configuration compile

在Window系统下,无需使用./开头,直接使用gradlew即可。

执行app模块下的dependencies任务;额外配置compile,编译环境下的依赖项。

888.png
888.png

通过查看依赖树,我们就能看到哪些依赖有冲突,比如某个框架的support包冲突,只要在moudle的gradle文件下找到该冲突的依赖用括号括住,在后面加:

{
   exclude group:'com.android.support'
}

这要就可以把该框架的support包移除啦。

本文转自 https://juejin.cn/post/7039918795242569765 ,如有侵权,请联系删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

打包
gradle
android
android studio

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

打包
gradle
android
android studio
评论
登录 后参与评论
0 条评论
热度
最新
登录 后参与评论
推荐阅读
LV.
文章
0
获赞
0
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

Copyright © 2013 - 2024 Tencent Cloud.

All Rights Reserved. 腾讯云 版权所有

登录 后参与评论
 
推荐文章
曾经爱过的猴子  ·  血脉被掠夺后,我无敌了漫画|官方在线漫画全集-快看漫画
1 年前
冷冷的夕阳  ·  了解东京奥运会新竞赛项目:射击混合团体赛
1 年前
行走的甘蔗  ·  暑期档国漫来了!《冲出地球》定档7月16日_热血_影片_银幕
1 年前
曾经爱过的汉堡包  ·  风景G7和东风·瑞泰特EM10的区别买哪个好-易车
1 年前
安静的甘蔗  ·  最新最全攻略!今年,这所牛校要招什么样的学生?解读2019年蛟川书院招生简章!_镇海
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号