美文网首页安卓开发博客GradleAndroid开发经验谈
Android查看第三方库的依赖树汇总

Android查看第三方库的依赖树汇总

作者: 龙旋之谷 | 来源:发表于2021-12-10 15:55 被阅读0次

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

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

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


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

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)

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


该报错的意思就是:没有

into(Landroid/widget/ImageView)

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

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


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

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


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

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

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

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

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

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

方案一: Gradle task工具查看

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


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


3、打印如图所示:

方案二:使用Gradle View插件

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

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


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


如图所示:

方案三: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,编译环境下的依赖项。


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

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

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

相关文章

  • android studio 查看包的依赖关系

    参考文章 使用Gradle查看Android依赖树图使用Gradle查看Android项目中库的依赖关系Andro...

  • app 依赖管理

    参考-解决库依赖冲突问题 参考-查看第三方库依赖树 参考-依赖管理 good 参考-依赖管理

  • Android查看第三方库的依赖树汇总

    项目的开发过程中,我们或多或少都会引入第三方库,引入的库越多,越容易产生库之间的依赖冲突。 下面就拿我遇到的问题还...

  • Android如何查看库的依赖树

    前言 我们在Android开发中,通常需要处理依赖冲突的问题,那么我们就需要查看这个项目到底依赖了哪些库 1. 在...

  • 6.2、Android Studio 添加编译依赖

    文章摘要1、 三种依赖类型2、库依赖关系配置3、远程仓库4、查看依赖关系树 英文文献 Android Studio...

  • Gradlew常用命令

    1、Android 查看依赖树(依赖列表、依赖结构) 在Android Studio底部的Terminal窗口中输...

  • Android Studio查看第三方库依赖树

    说明 如果项目中引入了比较多的第三方库,那么当我们升级第三方库或者引入新的第三方库时,就会冲突。那么我们就需要准确...

  • Android-MoPub广告的集成(2)

    Android集成第三方依赖库 在此之前,首先先来总结一下Android集成三方依赖库的方式Android也是基于...

  • Android第三方库依赖树

    在Android开发过程中,依赖库版本冲突是个很麻烦的问题,为了解决该问题,我们可以列出第三方库依赖树,通过比较来...

  • 相似框架对比评测

    Android Image Loader 第三方库对比测试 Android依赖注入:Dagger、RoboGuic...

网友评论

    本文标题:Android查看第三方库的依赖树汇总

    本文链接:https://www.haomeiwen.com/subject/ikwcfrtx.html