Выполнение выполнения java.lang.NoClassDefFoundError: retrofit2.Platform в Android

Я использую Rtofit для обработки данных на стороне сервера с мобильного телефона. После реализации модернизации я получаю следующее исключение. Кто-нибудь знает об этой проблеме, скажите мне, где я ошибся.

Инициировать модернизацию:

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

Файл Gradle

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'
}

Трассировка стека

   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

person Pandiyan Muthu    schedule 26.04.2016    source источник
comment
кажется, что он не может найти класс платформы. Попробуйте очистить и построить   -  person Asthme    schedule 26.04.2016
comment
я пробовал это все тот же вопрос   -  person Pandiyan Muthu    schedule 26.04.2016
comment
Вы используете прогард? если да, вы добавили записи proguard?   -  person Murtaza Khursheed Hussain    schedule 26.04.2016
comment
нет, я не использую @MurtazaKhursheedHussain   -  person Pandiyan Muthu    schedule 26.04.2016


Ответы (3)


Попробуйте изменить okhttp на okhttp3.

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

Как retrofit2 для внутреннего использования okhttp3.

Попробуйте собрать и синхронизировать gradle.

person Amit Gupta    schedule 26.04.2016
comment
и нет необходимости использовать библиотеку okio в gradlle. - person Asthme; 26.04.2016
comment
@MuthuPandiyan Рад помочь вам. - person Amit Gupta; 26.04.2016
comment
когда я добавляю renderscriptTargetApi 23 renderscriptSupportModeEnabled true Снова у меня возникла та же проблема - person Pandiyan Muthu; 03.05.2016
comment
не могли бы вы помочь мне в этом вопросе @AmitGupta - person Pandiyan Muthu; 03.05.2016

У меня такая же проблема. Возможное решение (исправил мою проблему):

1) Добавить зависимость gradle: compile 'com.android.support:multidex:1.0.0' (файл build.gradle)

2) Установить multiDexEnabled true (файл build.gradle)

3) Добавляем android:name="android.support.multidex.MultiDexApplication" (файл 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>
person harisdautovic    schedule 14.05.2016
comment
Это было проблемой для меня. Мое приложение не работало для 4.4, только для 5.0 и более поздних версий, и это решило проблему. Спасибо. - person Daniel Viaño; 28.09.2016

Добавьте их в свой класс обслуживания

//создаем клиент OkHttpClient

    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());
    }
person Mihira Prasanna    schedule 21.09.2016