Java 尝试创建OkHttpClient对象时出现kotlin/TypeCastException

Java 尝试创建OkHttpClient对象时出现kotlin/TypeCastException,java,okhttp,okio,Java,Okhttp,Okio,当我尝试创建一个新的OkHttpClient对象时,会抛出一个异常 我正在使用OkHttp 3.11.0和OkIO 2.0.0-RC1 线程“main”java.lang.NoClassDefFoundError中出现异常:kotlin/TypeCastException 在okhttp3.ResponseBody.create(ResponseBody.java:210) 位于okhttp3.internal.Util.(Util.java:60) 在okhttp3.OkHttpClient(

当我尝试创建一个新的OkHttpClient对象时,会抛出一个异常

我正在使用OkHttp 3.11.0和OkIO 2.0.0-RC1

线程“main”java.lang.NoClassDefFoundError中出现异常:kotlin/TypeCastException 在okhttp3.ResponseBody.create(ResponseBody.java:210) 位于okhttp3.internal.Util.(Util.java:60) 在okhttp3.OkHttpClient(OkHttpClient.java:123) 在p12.Main.Main(Main.java:8) 原因:java.lang.ClassNotFoundException:kotlin.TypeCastException 位于java.net.URLClassLoader.findClass(URLClassLoader.java:381) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:424) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 4更多


您是否将kotlin stdlib和stdlib公共依赖项添加到构建中?看起来他们缺席了。

我也有同样的问题。
添加到构建路径

对我有效的解决方案(在本文中提到)是添加
okhttp
库本身:

Gradle kotlin DSL:

testImplementation("com.squareup.okhttp3:okhttp:4.2.2")
testImplementation("com.squareup.okhttp3:mockwebserver:4.2.2")
Gradle Groovy DSL:

testImplementation 'com.squareup.okhttp3:okhttp:4.2.2'
testImplementation 'com.squareup.okhttp3:mockwebserver:4.2.2'

您的项目很可能包括
okhttp
的版本作为
3.x.x
的版本, 导致
mockwebserver
依赖于错误版本的
okhttp
,该版本还不包含对
kotlin stdlib common
的可传递依赖项

如果您正在使用
Spring Boot
mockwebserver
只需将以下属性添加到pom中


OSGi中的
4.x.x

不使用kotlin库,而是使用kotlin包:

我也遇到了同样的问题,我添加了Kotlin依赖项,如下所示:

<dependency>
   <groupId>org.jetbrains.kotlin</groupId>
   <artifactId>kotlin-stdlib</artifactId>
   <version>1.4.32</version>
</dependency>

org.jetbrains.kotlin
科特林标准实验室
1.4.32

您能提供出错的代码吗?