Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

kotlin/TypeCastException when trying to create OkHttpClient object

Tags:

java

okhttp

okio

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

like image 308
Mouamle Hasan Avatar asked Jul 27 '18 18:07

Mouamle Hasan


4 Answers

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

like image 147
Jesse Wilson Avatar answered Oct 19 '22 06:10

Jesse Wilson


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'
like image 44
skryvets Avatar answered Oct 19 '22 05:10

skryvets


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

like image 5
Houria Avatar answered Oct 19 '22 07:10

Houria


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>

like image 4
Serhii Povísenko Avatar answered Oct 19 '22 06:10

Serhii Povísenko