Multiple dex files define Lokhttp3/internal/wsWebSocketProtocol

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... 怎一个爽快了得?

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

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

原文地址:https://www.cnblogs.com/angel88/p/8328346.html

时间: 2024-10-22 09:14:11

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

Android 多个DEX错误 Multiple dex files define Landroid/support/v7/app/ActionBar$DisplayOptions;

今天在写程序的时候我的Android Studio 突然编译错误(错误提示如下:)后来经过我的几番折腾发现每一次都要先Clear Project一下然后再Build就可以了,如果你第二次再Build的时候就报错.后来我就找到了最强的老师(Google)尝试解决!可惜很遗憾,我在Google上看到的都是Eclipse上的解决方法.并没有找到我想要的答案,难道要我每一次在Build的时候都要先Clear Project吗?最后又经过我的几番折腾我发现在Project Structure--->app

【Android-tips】 Unable to execute dex: Multiple dex files define 解决方法

唔,之前已经想过今后不动android,没想到还是因为比赛的原因重操旧业.android有很多问题是由于eclipse的不完善造成的,比如今天遇到的这个问题 Unable to execute dex: Multiple dex files define [2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; [2011-10-23 16:23:

[Android学习笔记]Unable to execute dex Multiple dex files define:xxxx 问题

不同情况可能会出现这个问题,我遇到的问题是: 引入的多个jar包中,其中可能是第三方的SDK,但是其中可能使用了比较流行的开源框架,此时你项目中就有两套包名一样的代码,编译没问题,部署到手机之后就报如上错误 解决办法是: 把第三方jar包包含的开源代码删掉即可 比如: 项目中使用了android-async-http.jar , 同时引入 xxxxx.sdk.jar , 而由于xxxxx.sdk.jar中也引入了android-async-http.jar所以出现以上错误 解决步骤: 1.修改x

Unable to execute dex: Multiple dex files define Lorg/ap (

解决这个问题的方法,直接把commons-collections.jar这个jar包删除,一定要删干净啊,各个地方看一下,再clean下,应该没问题了!根据这个英文的目录指示就是Unable to execute dex: Multiple dex files define Lorg/apache/commons/collections下的一个类文件和自己定义的冲突了,删掉!

Android Studio:Multiple dex files define Landroid/support/annotation/AnimRes

最近真的比较忙,一不小心博客又荒了两个月.从今天起,决定重返csdn,多多纪录和分享.先从一个最近被折磨的死去活来的问题. 由于升级了V4包,就一直报这个问题: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; 每次都要clean一下,然后才能编译过,光这个过程就浪费了4/5分钟.出现这个问题是因为最新的v4包(compile 'com.android.supp

weibo sdk Multiple dex files define Lcom/sina/weibo/sdk/BuildConfig

集成新浪微博SDK,用gradle编译时,报如下错误: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/sina/weibo/sdk/BuildConfig; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMe

Android - Unable to execute dex: Multiple dex files define

这种提示的意思是说,引用的文件重复了.在引用json解析库中,clean工程的时候,报错说: Unable to execute dex: Multiple dex files define Lorg/apache/commons/collections/Buffer; Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/apache/commons/collectio

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

问题发生概述:       程序编译正常,在用Eclipse调试执行时,报错Unable to execute dex: Multiple dex files define,因为以前也没有遇到这类错误,首先便尝试万能纠错发,如下方法一,也是上网搜索众多解决方案之一,尝试后未果,便按照搜索方案,逐一尝试,都未能解决,最后盯着工程突然发现问题.具体解决方案如下: 方法一:       Eclipse->Project->去掉Build Automatically->Clear ->Bu

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

我们在引入library时可能会出现这个错误 比如:[2013-11-05 14:22:15 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/mobile/appstore/listjar/sdk/R$anim;[2013-11-05 14:22:15 - TabHostSample] Conversion to Dalvik format failed: Unable to execute dex: Mul