Retrofit 依赖okhttp3报错_ 查看pom文件,解决冲突即可
Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.HttpUrl.get(Ljava/lang/String;)Lokhttp3/HttpUrl;
at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:458)
at pe.freeopen.eosclient.client.http.Generator.createService(Generator.java:45)
at pe.freeopen.eosclient.EosClient.<init>(EosClient.java:42)
百度了两个案例。
retrofit 依赖okhttp3报错_要争气的博客-CSDN博客 https://blog.csdn.net/liangwenmail/article/details/118327411 retrofit是一款好用的http框架,在项目集成retrofit时,有时候会启动报关于okhttp错,如下: the follollowing method did not exists: okhttp3.HttpUrl.get(Ljava/lang/String;)Lokhttp3/HttpUrl; 解决思路: 排除retrofit 的okhttp3依赖,强依赖okhttp3 3.12.0版本
NoSuchMethodError: okhttp3.HttpUrl.get(Ljava/lang/String;)Lokhttp3/HttpUrl; 问题原因及解决_Algowi 京保的博客-CSDN博客 https://blog.csdn.net/weixin_41020185/article/details/105959138 1.问题原由 由于项目中用到com.squareup.retrofit2 retrofit2.jar 2.5.0 retrofit2(2.5.0)用的是okhttp3(3.12.0)版,其中有有一段是这样引用的 /** * Set the API base URL. * * @see #baseUrl(HttpUrl) */ public Builder baseUrl(String baseUrl) { Objects.requireNonNull(baseUrl, "baseUrl == null"); return baseUrl(HttpUrl.get(baseUrl)); } HttpUrl.get(baseUrl) 就是这段报的错 项目中okhttp3 包版本冲突,引用的是okhttp3(3.8.1)版,而(3.8.1)版没有HttpUrl.get(String url)方法 ,而是换成了HttpUrl.get(URL url)方法,因此报错,解决jar包冲突引用okhttp3(3.12.0)版本就好了。
本人解决方法:
===拓展 如何查看pom的依赖关系, 打开pom 右键 查看 diagrams 能看到报错的依赖,一目了然。
因为本人项目中的 retrofit是2.5版本,里面依赖 okhttp 3.12.0版本。而本人想买中用的 okhttp 却是 3.10.0 ,所以有问题。
解决方法,要么把okhttp 改大成,3.12.0 要么把retrofit 由2.5版本改成2.4版本。
本人直接将2.5改成 2.4的版本就可以了。
<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.10.0</version> </dependency> <dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>retrofit</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>converter-jackson</artifactId> <version>2.5.0</version> </dependency>
程序可以跑起来了,但是还有问题,
把retrofit 由2.5版本改成2.4版本。请求一些api返回不了数据。
把okhttp 改大成,3.12.0 ,某个api能返回数据。
两种修改方式,看pom依赖都还有红线,... 应该是没有问题的,我看了其他正常的项目也是有红线。比如
目前 把okhttp 改大成,3.12.0 是可以正常跑了。