Search code examples
androidretrofitzendesk

Android java.lang.NoClassDefFoundError: retrofit.Types when calling ContactZendeskActivity


I have integrated ZenDesk in my app but when calling ContactZendeskActivity for ticket creation app crashed. Log cat is attached below. Please help me. Thanks in advance

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':volley')
    compile project(':ViewPagerIndicator')
    compile project(':CircularImageView')
    compile project(':CircularImageCropper')
    compile project(':SwipeLayout')
    compile project(':DragNDropLib')
    compile group: 'com.zendesk', name: 'sdk', version: '1.5.1.1'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.google.android.gms:play-services-gcm:8.1.0'
    compile 'com.google.android.gms:play-services-location:8.1.0'
    compile 'jp.wasabeef:recyclerview-animators:2.0.1'
    compile 'com.android.support:multidex:1.0.0'
    compile 'javax.inject:javax.inject:1@jar'
    compile 'com.squareup.dagger:dagger:1.2.2'
    compile 'com.squareup.dagger:dagger-compiler:1.2.2'
    compile 'junit:junit:4.12'
    compile 'org.mockito:mockito-core:1.10.19'
}

FATAL EXCEPTION: main java.lang.NoClassDefFoundError: retrofit.Types at retrofit.RestMethodInfo.parseResponseType(RestMethodInfo.java:286) at retrofit.RestMethodInfo.(RestMethodInfo.java:97) at retrofit.RestAdapter.getMethodInfo(RestAdapter.java:213) at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:236) at $Proxy1.getSettings(Native Method) at com.zendesk.sdk.network.impl.ZendeskSdkSettingsService.getSettings(ZendeskSdkSettingsService.java:37) at com.zendesk.sdk.network.impl.ZendeskSdkSettingsProvider.getSettings(ZendeskSdkSettingsProvider.java:57) at com.zendesk.sdk.network.impl.ZendeskBaseProvider.getSdkSettings(ZendeskBaseProvider.java:92) at com.zendesk.sdk.network.impl.ZendeskSettingsHelper.loadSetting(ZendeskSettingsHelper.java:28) at com.zendesk.sdk.feedback.ui.ContactZendeskFragment.preloadSettingsAndInit(ContactZendeskFragment.java:237) at com.zendesk.sdk.feedback.ui.ContactZendeskFragment.onCreateView(ContactZendeskFragment.java:223) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1188) at android.app.Activity.performStart(Activity.java:5382) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2266) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349) at android.app.ActivityThread.access$700(ActivityThread.java:159) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) at dalvik.system.NativeStart.main(Native Method)


Solution

  • Issue fixed by adding MultiDex.install(this); in my application class as below. No need to add retrofit dependency in this case.

    protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
    }