Runtime Execption java.lang.NoClassDefFoundError: retrofit2.Platform in Android

匿名 (未验证) 提交于 2019-12-03 02:26:02

问题:

i am using Rtofit to handling the Serverside Data from Mobile After Implementing the Retrofit I am Getting the below Exception any know about this issue tell me where i am did wrong

Init Retrofit:

mRetrofit = new Retrofit.Builder()                     .baseUrl(AppConstance.APP_URL)                     .addConverterFactory(GsonConverterFactory.create())                     .build();             Iservice = mRetrofit.create(IdeaService.class); 

Gradle File

dependencies {     compile fileTree(dir: 'libs', include: ['*.jar'])     testCompile 'junit:junit:4.12'     compile 'com.android.support:appcompat-v7:23.2.1'     compile 'com.squareup.retrofit2:retrofit:2.0.2'     compile 'com.squareup.retrofit2:converter-gson:2.0.0'     compile 'com.squareup.okhttp:okhttp:2.2.0'     compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'     compile 'com.squareup.okio:okio:1.7.0' } 

Stacktrace

   04-26 11:54:36.441 18355-18355/com.omt.example W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41da0c98) 04-26 11:54:36.441 18355-18355/com.omt.example W/dalvikvm: threadid=1: uncaught exception occurred 04-26 11:54:36.442 18355-18355/com.omt.example W/System.err: java.lang.NoClassDefFoundError: retrofit2.Platform 04-26 11:54:36.444 18355-18355/com.omt.example W/System.err:     at retrofit2.Retrofit$Builder.<init>(Retrofit.java:402) 04-26 11:54:36.445 18355-18355/com.omt.example W/System.err:     at com.omt.example.utils.Idea.onCreate(Idea.java:79) 04-26 11:54:36.447 18355-18355/com.omt.example W/System.err:     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007) 04-26 11:54:36.448 18355-18355/com.omt.example W/System.err:     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4541) 04-26 11:54:36.449 18355-18355/com.omt.example W/System.err:     at android.app.ActivityThread.access$1500(ActivityThread.java:151) 04-26 11:54:36.450 18355-18355/com.omt.example W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381) 04-26 11:54:36.451 18355-18355/com.omt.example W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:110) 04-26 11:54:36.451 18355-18355/com.omt.example W/System.err:     at android.os.Looper.loop(Looper.java:193) 04-26 11:54:36.452 18355-18355/com.omt.example W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5292) 04-26 11:54:36.453 18355-18355/com.omt.example W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method) 04-26 11:54:36.454 18355-18355/com.omt.example W/System.err:     at java.lang.reflect.Method.invoke(Method.java:515) 04-26 11:54:36.455 18355-18355/com.omt.example W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824) 04-26 11:54:36.456 18355-18355/com.omt.example W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) 04-26 11:54:36.457 18355-18355/com.omt.example W/System.err:     at dalvik.system.NativeStart.main(Native Method) 04-26 11:54:36.457 18355-18355/com.omt.example W/dalvikvm: threadid=1: calling UncaughtExceptionHandler 

回答1:

Try change the okhttp to okhttp3

compile 'com.squareup.okhttp3:okhttp:3.2.0' compile 'com.squareup.okhttp3:okhttp-urlconnection:3.2.0' 

As retrofit2 internally using okhttp3.

Try build and sync gradle.



回答2:

I had the same problem. Possible solution (fixed my problem):

1) Add gradle dependency: compile 'com.android.support:multidex:1.0.0' (file build.gradle)

2) Set multiDexEnabled true (file build.gradle)

3) Add android:name="android.support.multidex.MultiDexApplication" (file AndroidManifest.xml)

<application     android:allowBackup="true"     android:icon="@mipmap/ic_launcher"     android:label="@string/app_name"     android:supportsRtl="true"     android:theme="@style/AppTheme"     android:name="android.support.multidex.MultiDexApplication">  </application> 


回答3:

Add these to your Service class

//create OkHttpClient client

    Strategy strategy = new AnnotationStrategy();      // Define the interceptor, add authentication headers     Interceptor interceptor = new Interceptor() {         @Override         public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException {             Request newRequest = chain.request().newBuilder().addHeader("User-Agent", "Retrofit-Sample-App").build();             return chain.proceed(newRequest);         }     };       Serializer serializer = new Persister(strategy);      OkHttpClient.Builder builder = new OkHttpClient.Builder();     builder.interceptors().add(interceptor);     OkHttpClient client = builder.build();      HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();      httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);     builder.networkInterceptors().add(httpLoggingInterceptor);     builder.build();      RxJavaCallAdapterFactory rxAdapter = RxJavaCallAdapterFactory.create();      Retrofit retrofit = new Retrofit.Builder()             .addConverterFactory(SimpleXmlConverterFactory.create(serializer))             .addCallAdapterFactory(rxAdapter)             .baseUrl(YellowTalkConstant.BASE_URL)             .client(client)             .build();      try{         this.mYellowTalkApi = retrofit.create(YellowTalkApi.class);     }catch (Exception ex) {         Log.e("Exception", ex.toString());     } 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!