kotlin/TypeCastException when trying to create OkHttpClient object

13,420

Solution 1

Did you add the kotlin stdlib and stdlib-common dependencies to your build? Looks like they're absent.

Solution 2

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'

Solution 3

I had the same problem. Add kotlin-stdlib JAR to the build Path

Solution 4

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>

Solution 5

Well, I had the same problem and I added the Kotlin dependency like this:

<dependency>
   <groupId>org.jetbrains.kotlin</groupId>
   <artifactId>kotlin-stdlib</artifactId>
   <version>1.4.32</version>
</dependency>
Share:
13,420
Mouamle Hasan
Author by

Mouamle Hasan

Updated on June 29, 2022

Comments

  • Mouamle Hasan
    Mouamle Hasan almost 2 years

    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