前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gradle解决多lib冲突

Gradle解决多lib冲突

作者头像
None_Ling
发布2018-10-24 14:37:43
1.5K0
发布2018-10-24 14:37:43
举报
文章被收录于专栏:Android相关Android相关

背景

在引入第三方jar包的时候,可能会遇到很多库的冲突,例如均使用了OkHttp,RxJava等等,在打包的时候就会遇到Class多个定义的问题。而目前Android中均是用AAR进行dex以及资源的打包,无法通过源码再进行剥离

解决方案

在Gradle中,通过compile "io.reactivex:rxjava:1.2.3"的方式将已经定义好的Maven仓库中的资源下载并且编译到项目中。

然后通过exclude的方式,在编译的时候,将对应包名/模块名下面的class不打包。

实例

比如RxJava编译过后的包结构如下图:

RxJava

而如果使用以下语句的话,则会将rx.internal.observers包下的class不打入Dex中,通过这种方式,就可以解决多class冲突的问题

代码语言:javascript
复制
compile "io.reactivex:rxjava:1.2.3"{
        exclude group: 'rx.internal',module:'observers' 
    }

追踪

在项目的build目录下面可以看到编译完成的classes信息用于验证exclude是否生效

build目录

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 解决方案
  • 实例
  • 追踪
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档