Gradle for Android(四)——依赖冲突解决
来源:互联网 发布:手机淘宝流量劫持 编辑:程序博客网 时间:2024/06/07 17:17
前面的章节详细介绍了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属性,替换的多个属性之间用逗号隔开,例如:
<application android:name=".App" android:allowBackup="false" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:supportsRtl="true" android:theme="@style/AppTheme" tools:replace="android:allowBackup,android:theme, android:name">
目前遇到的冲突大概就这么多,以后遇到其他问题会持续更新补充。
阅读全文
0 0
- Gradle for Android(四)——依赖冲突解决
- android 中gradle依赖冲突解决
- Gradle解决依赖冲突
- gradle 解决依赖冲突问题
- Android Studio(Gradle)解决库依赖冲突问题
- Android Studio(Gradle)解决库依赖冲突问题
- Android Studio(Gradle)解决库依赖冲突问题
- Android Studio(Gradle)解决库依赖冲突问题
- Android Studio(Gradle)解决库依赖冲突问题
- Android Studio(Gradle) 解决库依赖 冲突问题
- Android Studio(Gradle)解决库依赖冲突问题
- Gradle for Android(四)
- Gradle for Android系列之四 依赖包管理
- Gradle for Android(三)——依赖管理(一)
- Gradle for Android(三)——依赖管理(二)
- Gradle for Android-管理依赖
- Gradle for Android 依赖管理
- maven 解决依赖冲突 omiit for conflict
- Maven3的jar包上传
- SpringBoot优化内嵌的Tomcat
- 分步积分法
- 平方根,立方根,阶乘,追赶法(C#)
- 【记录】微信录音开发(企业微信JSSDK-下载到自己的服务器-ffmpeg转码h5播放)
- Gradle for Android(四)——依赖冲突解决
- invoke方法反射调用类指定中方法
- 基于php常用函数总结(数组,字符串,时间,文件操作)
- Magic Touch 中的手势识别(一)
- 遍历HashMap值
- BZOJ 1307 [ZJOI2008]生日聚会Party
- <mvc:default-servlet-handler />不能同时访问静态资源和动态资源的问题
- 标签流控件
- JQ常用正则