博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gradle for Android(四)——依赖冲突解决
阅读量:2084 次
发布时间:2019-04-29

本文共 813 字,大约阅读时间需要 2 分钟。

前面的章节详细介绍了Gradle的依赖配置,每个大型项目中我们都会依赖许多个模块和外部依赖,也会出现重复依赖的情况,现在我们就来探讨下依赖冲突的解决。

依赖冲突主要的表现形式有:

1、多个模块同时引用了同一个外部依赖打包出现类重复

这种情况在编译打包时可能会出现多个类重复的情况,解决方法是找到重复的类所在的依赖包,只保留主module里面的依赖配置为compile ‘xxx’,其他module里面全部改为provided“xxx”表示只参与编译不参与打包,这样最终打包的app中就保持唯一一个类;

provided 'com.google.code.gson:gson:2.2.4'

2、aar包中的jar引用和本地引用的jar版本不同

解决方法将本地jar的依赖改为:

provided files('libs/xxx.jar')

同时要将对应module依赖配置中的如下代码去掉:

compile fileTree(include: ['*.jar'], dir: 'libs')

3、aar包的外部依赖和本地外部依赖版本号冲突

解决方法是去除本地的外部依赖。有时我们可以直接在build.gradle文件中快速找到冲突的依赖是哪个,有时不能明确找到,这时我们可以查看项目的依赖树,因为我们的外部依赖可能存在着传递依赖,如果冲突的依赖属于传递依赖,我们可以采用如下方法解决:

compile ('com.squareup.retrofit2:converter-gson:2.1.0'){        exclude group:'com.google.code.gson',module:'gson' }

4、在使用别人sdk过程mainfest配置可能出现冲突

解决方法是使用tools:replace属性,替换的多个属性之间用逗号隔开,例如:

目前遇到的冲突大概就这么多,以后遇到其他问题会持续更新补充。

转载地址:http://ercqf.baihongyu.com/

你可能感兴趣的文章
volatile关键字解析
查看>>
单例模式的八种写法比较
查看>>
比较常见的数据库SQL面试题以及答案
查看>>
MySQL与Oracle的区别
查看>>
关于Oracle数据库优化的几点总结
查看>>
69道Spring面试题和答案
查看>>
40个Java多线程问题总结
查看>>
Oracle数据库面试题
查看>>
java面试中的智力题
查看>>
本地如何连接hbase数据库
查看>>
Maven出错-Missing artifact org.apache.openejb:openejb-core:jar:4.1.0-SNAPSHOT:test
查看>>
dubbo配置文件xml校验报错
查看>>
eclipse生成export生成jar详解
查看>>
oracle 模糊查询忽略大小写
查看>>
Java项目导出可运行的jar文件
查看>>
Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析),兼容Windows和Linux
查看>>
JAVA读取PROPERTIES配置文件
查看>>
Linux中执行shell脚本的4种方法总结
查看>>
BufferedInputStream(缓冲输入流)详解
查看>>
修改linux文件权限命令:chmod
查看>>