个人网站开发开题报告,怎样优化网站案例,柳州 网站建设,新闻稿范文在原本的代码中已经使用了OKHTTP和rxjava#xff0c;然后今天依赖retrofit的时候一直报错 Program type already present: okhttp3.internal.ws.RealWebSocket$1.class 说是我重复添加了OKHTTP的包#xff0c;但其实我直接把OKHTTP的依赖注释掉都没用#xff0c;只要依赖ret…在原本的代码中已经使用了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 conflictexclude 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搜索快捷键-双击shiftRealWebSocket 看到两个重复的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