Retrofit: java.lang.NoClassDefFoundError: Failed resolution of: Retrofit/Platform;

Created on 14 Dec 2019  路  6Comments  路  Source: square/retrofit

My application is crashing when I am launching it and I can see the reason is Retrofit in Android Studio Logcat:

java.lang.NoClassDefFoundError: Failed resolution of: Lretrofit2/Platform;
at retrofit2.Retrofit$Builder.(Retrofit.java:408)
at com.myapp.webservices.WSClient.getRetroFitAPIListener(WSClient.java:71)
at com.myapp.base.MyApplication.onCreate(MyApplication.kt:40)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1141)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5854)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1697)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6626)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
Caused by: java.lang.ClassNotFoundException: Didn't find class "retrofit2.Platform" on path: DexPathList[[zip file "/data/app/com.myapp-vSwSFvUUzjH91IiAxsw1SA==/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp-vSwSFvUUzjH91IiAxsw1SA==/lib/arm, /system/lib, /system/vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at retrofit2.Retrofit$Builder.(Retrofit.java:408)聽
at com.myapp.webservices.WSClient.getRetroFitAPIListener(WSClient.java:71)聽
at com.myapp.base.MyApplication.onCreate(MyApplication.kt:40)聽
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1141)聽
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5854)聽
at android.app.ActivityThread.-wrap1(Unknown Source:0)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1697)聽
at android.os.Handler.dispatchMessage(Handler.java:106)聽
at android.os.Looper.loop(Looper.java:164)聽
at android.app.ActivityThread.main(ActivityThread.java:6626)聽
at java.lang.reflect.Method.invoke(Native Method)聽
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)聽
2019-12-14 14:17:04.710 32665-32665/? E/AndroidRuntime: FATAL EXCEPTION: main

In build.gradle I am using:
implementation 'com.squareup.retrofit2:retrofit:2.7.0'
implementation 'com.squareup.retrofit2:converter-gson:2.7.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.7.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.0.0'

Two days ago I was able to run the application successfully after of 5 hours effort and found success with a clean and build the Gradle, answer provided here: Retrofit Issue

But now again I am facing this issue and cannot able to run the app from the last 8 hours of effort which is impacting my project delivery without any cause. Anyone is here who can help me asap?

My line of code where I am meeting this exception is:

public static WSClientListener getRetroFitAPIListener() {
Retrofit retrofit = new Retrofit.Builder() //This retrofit builder say no class deffound error
.baseUrl(WSUtils.BASE_URL)
.client(getHttpClient().build())
.addConverterFactory(GsonConverterFactory.create(new GsonBuilder()
.setLenient()
.create()))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
return retrofit.create(WSClientListener.class);
}

Most helpful comment

Update to version 2.8.1. It worked for me

All 6 comments

Same here brother. Can someone please provide a solution

Update to version 2.8.1. It worked for me

Hey,

I'm using version 2.8.1 and still having this issuer. Here are my gradle depencies:

// Retrofit & co.
dependencies {
    implementation 'com.squareup.okhttp3:logging-interceptor:4.4.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.8.1'
    implementation 'com.squareup.retrofit2:retrofit:2.8.1'
    implementation 'com.google.code.gson:gson:2.8.5'
}

and here is the stacktrace:

java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Failed resolution of: Lretrofit2/Retrofit$Builder;
E/AndroidRuntime(29127):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3121)
E/AndroidRuntime(29127):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3264)
E/AndroidRuntime(29127):    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
E/AndroidRuntime(29127):    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E/AndroidRuntime(29127):    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/AndroidRuntime(29127):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
E/AndroidRuntime(29127):    at android.os.Handler.dispat

The strange part is that it was working before. I'll check my proguard settings.

The project I was working on was an Android library. I manage to temporarely fix the issue by adding all the retrofit dependencies (same as those I listed above) to the app consuming the library. For now it is enough, however I'll look further for a better approach.

Following as below worked for me
Step 1: I have added and updated retrofit dependencies(2.9.0) in both app and library build.gradle file
Step 2: Added in app's gradle

compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}

Step 3: Invalidate caches and restart / Clean build and Rebuild.

Thanks,
Gowtham G

Was this page helpful?
0 / 5 - 0 ratings