Multiple dex files define Lokhttp3/internal/wsWebSocketProtocol

老套路,先晒图

图一:

如题,在编译打包时遇到了如上错误,很明显这是一个依赖库冲突的问题,我的app下依赖一个 ad library,而 ad library有依赖了一个 http library,这是一个我用okhttp封装的网络请求库,而 ad library 又依赖了 compile 'com.squareup.okhttp3:okhttp:3.9.1' 这依赖关系确实有点混乱,那这时候有人说了,你的 ad library为什么不用 http library里面的okhttp呢?自从AS3.0 gradle4.0开始依赖使用 implementation 代替了 compile 关键字,因此 compile 就被过期了,http 虽然依赖了 okhttp ,但是 ad library要想使用 okhttp 是不可以的,因为使用implementation 对于ad library 是不可见的,所以ad library又依赖了一次 compile 'com.squareup.okhttp3:okhttp:3.9.1' 因为 ad library需要单独的进行定制化的网络请求配置,所以 ad library中的网络请求是没有封装进http library中的,所以导致了重复依赖的问题,使用 implementation 关键字虽然可以屏蔽ad library访问 http library中 okhttp 的api,但是依赖冲突的问题确实还是存在的...

于是乎,网上搜了一篇帖子:

https://stackoverflow.com/questions/45111497/android-gradle-failed-multiple-dex-files-define-okhttp

看来一下和我的情况一毛一样,报的错误也一样,直接戳到Answer处,解决方式如下

图二:

然后直接去除掉重复的依赖,修改如下后,再rebuild

图三:

心里想着,这个问题终于解决了,喝了口水,长呼了一口气。。。

我擦,竟然又爆红了,我勒个去,什么情况?这不科学啊,什么鬼?心里很郁闷,这是为什么呢?

不行啊,看来我必须要放大招了,心里开始仔细揣摩了,认真想想,绝逼哪里肯定是有问题的,start thinking...

认真起来的男人是最帅的 0.0~

仔细看了看http library中的 okhttp 是3.3.1,而 ad library中的 okhttp 3.9.1,忽然想起来之前遇到过同时依赖两个不同版本的库也会出现这样的问题,于是,灵光一现,立马把版本号改一样试试,修改后如下:

图四:

然后再rebuild...

oh yeah ~ 搞定,就是这么6... 怎一个爽快了得?

好了,今天就分享这么多吧,一来呢总结一下自己遇到的一些问题及解决办法,如果你也遇到,希望能帮助到你们,二来呢,希望大家如果真的帮助到你们了,麻烦你们给我点个赞或者在文章底部给我评论,或者你有什么意见或者意见都可以相互交流,谢谢你们!

--------一个逗比的码农和一个逗比的故事,如果想看到更多的文章,请点左侧头像下面的关注!

Multiple dex files define Lokhttp3/internal/wsWebSocketProtocol的更多相关文章

  1. Multiple dex files define Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;

    开发中引入第三方 aar 时编译同过,运行时出现问题: Multiple dex files define Lcom/google/gson/internal/Streams$AppendableWr ...

  2. Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define ...

    Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define ... 这个错误是因为有两个相 ...

  3. Multiple dex files define Lcom/google/zxing/BarcodeFormat

    解决zxing “Could not find class 'com.goole.zxing.Result”和“Multiple dex files define”问题 时间 2014-04-24 1 ...

  4. 用Eclipse运行Android版APP(PhoneGap)时出现:Unable to execute dex: Multiple dex files define

    这两天遇到点小问题,做个记录: 症状:运行,调试时都报:Unable to execute dex: Multiple dex files define错误,发布后的APP安装到手机后一运行,就提示: ...

  5. Unable to execute dex: Multiple dex files define Lcom/gl

    [2015-04-16 17:42:04 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/gl/softphon ...

  6. Multiple dex files define

    Multiple dex files define 在项目中,有一个类的包名和引用的jar包中的类和包名一致

  7. Unable to execute dex: Multiple dex files define 解决方法

    程序编译正常,在用Eclipse调试执行时,报错Unable to execute dex: Multiple dex files define: 方法:      原因是有重复的.jar被引用,可以 ...

  8. Unable to execute dex: Multiple dex files define异常的解决办法

    问题: [2016-01-06 16:47:58 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/sup ...

  9. Android - Unable to execute dex: Multiple dex files define

    这种提示的意思是说,引用的文件重复了.在引用json解析库中,clean工程的时候,报错说: Unable to execute dex: Multiple dex files define Lorg ...

随机推荐

  1. 【小家Spring】聊聊Spring中的数据绑定 --- BeanWrapper以及内省Introspector和PropertyDescriptor

    #### 每篇一句 > 千古以来要饭的没有要早饭的,知道为什么吗? #### 相关阅读 [[小家Spring]聊聊Spring中的数据转换:Converter.ConversionService ...

  2. ItemsControl绑定的数据模板显示不同样式:模板选择器

    总所周知,wpf提供了数据模板,列表控件可以绑定数据实现批量显示同类型数据.不过同个数据模板显示不同的样式怎么办?这时我们可以用模板选择器. 首先我们可以将数据绑定到首先定义资源样式 <Data ...

  3. JVM的内存区域

    Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域, 包含程序计数器.虚拟机栈.本地方法栈.Java堆.方法区(运行时常量池).直接内存等,不同的版本会有所差异 各区 ...

  4. Socket 连接问题之大量 TIME_WAIT

    简评:最近项目就出现了大量短连接导致建立新连接超时问题,最后是通过维护长连接解决的. 代理或者服务器设备都有端口限制,如果使用 TCP 连接,连接数量达到端口限制,在这种情况下,将不能创建新的连接. ...

  5. vijos p1304 回文数

    N进制下的加法 2/10/16进制下,char到int的转换 #include<iostream>#include<string>using namespace std;str ...

  6. CSS(下)

    1.CSS边框 边框属性: 1.border-width 宽度 2.border-style 样式 none 无边框 dotted 点状虚线边框 dashed 矩形虚线边框 solid 实线边框 3. ...

  7. C# MATLAB混编(一)

    参照这篇博客进行的C# MATLAB混编学习,学习过程中文章中的一些问题我并没有遇到,但是我遇到了一些新问题,这些问题的解决办法将在下一篇博客给出. 配置环境:vs2010(64位)+Matlab20 ...

  8. Linux操作系统和Windows操作系统的区别

    1.免费与收费 在中国,windows和linux都是免费的,至少对个人用户是如此,如果那天国内windows真的严打盗版了,那linux的春天就到了!但现在linux依然是任重道远,前路漫漫. 2. ...

  9. Pinyin4j简单使用教程

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场 有自己私服的可以 ...

  10. kubernetes CRD 开发指南

    扩展kubernetes两个最常用最需要掌握的东西:自定义资源CRD 和 adminsion webhook, 本文教你如何十分钟掌握CRD开发. kubernetes允许用户自定义自己的资源对象,就 ...