博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio中解决jar包重复依赖导致的代码编译错误
阅读量:5855 次
发布时间:2019-06-19

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

在原本的代码中已经使用了OKHTTP和rxjava,然后今天依赖retrofit的时候一直报错

Program type already present: okhttp3.internal.ws.RealWebSocket$1.class

说是我重复添加了OKHTTP的包,但其实我直接把OKHTTP的依赖注释掉都没用,只要依赖retrofit相关的就一定报这个错

网上推荐添加以下配置,但我尝试后无效,你们可以试试

configurations.all {        // OkHttp 3.5.0+ includes the websockets API, so we need this to prevent a conflict        exclude module: 'okhttp-ws'    }

最后我在这里https://github.com/facebook/react-native/issues/12646找到一个答案,catch成功

解决方法如下:

因为是okhttp3.5.0之后的版本才加入的okhttp-ws,所以把版本强制控制在3.5.0以下:

configurations.all {      resolutionStrategy.force 'com.squareup.okhttp3:okhttp:3.4.1' }

重新build,代码不再报错

 

 

-------------------------------------emm,以下是我第二天的打脸续集----------------------------------------

 

昨天直接使用强制控制版本之后以为就没问题了,今天把retrofit的相关代码写了,运行起来才发现3.5.0以下的有个okhttp.ws里的方法找不到,又是各种方法一通试,还是不行,直到在一篇博客上看到一点曙光,照方法执行后,解决了问题(这次是真的解决了

首先在log信息中找到你重复的地方,是哪个类或包重复了,比如我昨天讲的自己是okhttp里的RealWebSocket类重复,那么在studio中anywhere搜索(快捷键->双击shift)RealWebSocket

看到两个重复的RealWebSocket类,可以直接看到它的目录地址

然后想到自己昨天刚添加的一堆retrofit相关依赖

implementation 'com.squareup.retrofit2:retrofit:2.5.0'implementation 'com.squareup.retrofit2:converter-gson:2.5.0'implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0'

OK,现在就算是找到问题根源(其实一直都很明白问题就在这儿 哈哈哈

接下来很简单: 

在AS中,选择以project显示项目,找到最下面的External Libraries

 

然后找到相对应的类库,如图依次点开之后发现了一个pom.xml:

 

这里面就是关于这个jar的一些配置文件,点开之后找到你重复包的groupID复制下来:

然后到build.gradle里,找到那个依赖,添加{exclude group: 'com.squareup.okhttp3'} 

 

到此问题就解决了,如果你有多个重复依赖的话,就按上面的方法一个个去重。

亲亲,这边建议您有其他jar包重复的问题也可以尝试用这个方法解决呢

 

转载于:https://www.cnblogs.com/Sharley/p/10444561.html

你可能感兴趣的文章
vs环境c++语言教学视频,基于VS Code的C++语言的构建调试环境搭建指南
查看>>
android 字符串转浮点,Android String类型转换为float、double和int的工具类方法
查看>>
android mobile wifi,华为mobile wifi 2下载-HUAWEI Mobile WiFi 2 安卓版v9.0.1.323-PC6安卓网
查看>>
android fragment共享监听,Android Fragment中监听事件
查看>>
android蓝牙交互,Android蓝牙通信app
查看>>
将pyecharts的html页面,使用pyecharts生成Echarts网页的实例
查看>>
GoldenGate组态(四)它veridata组态
查看>>
C#设计模式之十六观察者模式(Observer Pattern)【行为型】
查看>>
Linux学习笔记之九————ubuntu软件安装与卸载
查看>>
Xshell终端模拟器如何查找字符串
查看>>
Linux安装codis
查看>>
搭建开发环境
查看>>
sublime text 3 设置默认自动换行
查看>>
WPF使用cefsharp 下载地址
查看>>
iOS 11开发教程(十六)iOS11应用视图之删除空白视图
查看>>
图像滤镜艺术---Hudson滤镜(Instagram)
查看>>
require.js使用
查看>>
springboot2.x版本整合redis(单机/集群)(使用lettuce)
查看>>
让动态创建的ActiveX控件响应Windows消息
查看>>
获取docker容器的ip地址
查看>>