美文网首页
关于重复依赖同一个库,出现冲突

关于重复依赖同一个库,出现冲突

作者: 业精于勤_荒于嬉 | 来源:发表于2023-10-25 16:14 被阅读0次

1、遇到编译错误 :Type com.xxx is defined multiple times:...

依赖:


首先我们需要知道哪些库存在着冲突,可以输入命令:

./gradlew app:dependencies

就会看到依赖库的依赖关系,例如:


然后找出存在冲突的依赖库,这里我们可以看到的是GlideImageLoader中的依赖重复依赖了BigImageViewer。只需要将冲突的依赖排除掉即可。改为:

更改之后,我们再执行命令:

./gradlew app:dependencies

可以看到GlideImageLoader所依赖的 com.github.piasy:BigImageViewer:1.8.1 已经不再显示:

exclude group:表示只要包含com.github.piasy 的都排除

例如:排除group中的指定module:

    api("com.afollestad.material-dialogs:core:0.9.5.0") {
        exclude group: 'com.android.support', module: 'support-v13'
        exclude group: 'com.android.support', module: 'support-vector-drawable'
    }

另外还有一个建议,在我们自己创建library给别人使用时,如果需要依赖com.android.support,gson这些使用者常用的库的话,建议用provider(compileOnly,android studio3.0中更改为compileOnly)的方式依赖,避免冲突。因为provider(compileOnly)的依赖方式,只在编译时有效,不会参与打包。

2、通过Grovvy脚本修改版本号解决冲突

在其存在冲突的moudle中的build.gradle文件中加入下面代码,原理就是通过遍历所有依赖,并修改指定库的版本号,
其中,requested.group=='com.android.support' com.android.support表示要修改的依赖库。
details.useVersion '28.0.0' 28.0.0表示要修改的版本号

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '28.0.0'
            }
        }
    }
}

参考:https://blog.csdn.net/gqg_guan/article/details/123262265

相关文章

  • com.android.builder.dexing.DexAr

    这个一般都是依赖库冲突造成的 查看是什么依赖库重复依赖 build.gradle 下过滤重复的依赖

  • Android重复依赖问题解决

    Android开发中经常需要引入第三方库,然而引入第三方库时候经常出现版本号冲突以及重复依赖等问题,下边就介绍几种...

  • 关于Android 第三方库的依赖树的查看

    前景纪要 开发项目时多多少少都会引入一些第三方库,当出现库与库之间依赖冲突时,我们需要把冲突的依赖使用exclue...

  • Android项目使用第三方库依赖树的查看方法

    前景纪要开发项目时多多少少都会引入一些第三方库,当出现库与库之间依赖冲突时,我们需要把冲突的依赖使用exclue进...

  • Android Tips 1

    去除重复库的引入 去除依赖库中的引入 去除 module a中关于b、c的引入,而使用当前project的依赖 F...

  • app 依赖管理

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

  • Android Studio中解决重复依赖DexExceptio

    Android Studio中如何解决重复依赖Gradle解决依赖冲突 查看依赖关系gradlew XXX:dep...

  • duplicate-symbols-for-architectu

    背景: 项目在接入全景播放器时导致的的错误:UtoVR的库和Linphone的库出现了冲突,存在重复的方法或变量。...

  • Android - 依赖统一管理

    前言 前段时间自己在搭建组件化框架时候遇到了多人协作 Moudle 版本依赖冲突以及重复导包和同一个包导入不同版本...

  • gradle 解决重复依赖

    一、查看重复依赖 如果出现重复依赖一般会出现以下错误: Error:Execution failedfortask...

网友评论

      本文标题:关于重复依赖同一个库,出现冲突

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