引入开源库依赖时,com.android.support版本不同引发冲突的解决办法

最近学习ARouter,发现导入ARouter依赖时,引发com.android.support版本冲突:
引入开源库依赖时,com.android.support版本不同引发冲突的解决办法_第1张图片

如上图所示,左边圈红的两个25.2.0的support包就是ARouter引进来的,和项目的support 27.1.1冲突了,解决:
引入开源库依赖时,com.android.support版本不同引发冲突的解决办法_第2张图片

如果很多第三方包都有与support包冲突的话,可以在build文件添加以下代码:

//强制所有的第三方包使用指定版本的support包:
configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '27.1.1'
            }
        }
    }
}

引入开源库依赖时,com.android.support版本不同引发冲突的解决办法_第3张图片

这样就不用一个一个依赖的exclude了


补充:
参考:https://blog.csdn.net/Calvin_zhou/article/details/80880501

报错:

Error: Program type already present: com.alibaba.fastjson.parser.ParseContext

双击shift,输入:ParseContext,发现:

引入开源库依赖时,com.android.support版本不同引发冲突的解决办法_第4张图片
发现ysxsdkrticim这个包里的fastjson版本1.2.9.1和项目引入的fastjson1.2.48版本不一,这里使用同一版本的方法,build文件下方加入:

在这里插入代码片

你可能感兴趣的:(android)