When i try to create a new OkHttpClient object an Exception get thrown
I'm using OkHttp 3.11.0 and OkIO 2.0.0-RC1.
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/TypeCastException at okhttp3.ResponseBody.create(ResponseBody.java:210) at okhttp3.internal.Util.(Util.java:60) at okhttp3.OkHttpClient.(OkHttpClient.java:123) at p12.Main.main(Main.java:8) Caused by: java.lang.ClassNotFoundException: kotlin.TypeCastException at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 4 more
Did you add the kotlin stdlib and stdlib-common dependencies to your build? Looks like they're absent.
The solution that worked for me (which is mentioned in this github comment) is to add okhttp library itself:
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'
I had the same problem. Add kotlin-stdlib JAR to the build Path
It is likely that your project includes the version of okhttp as version 3.x.x,
causing the mockwebserver to depend on the wrong version of okhttp which also does not yet contains the transitive dependency on kotlin-stdlib-common.
If you are using Spring Boot along with mockwebserver just add the following property to your pom
<okhttp3.version>4.x.x</okhttp3.version>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With