Неустранимое исключение: OkHttp Dispatcher при попытке получить данные из API с помощью Retrofit - PullRequest
0 голосов
/ 30 января 2020

Я прошел через несколько решений Stack Overflow, которые в основном предлагали включить Java 8, но он все еще не работает для меня. Минимальная версия SDK для моего приложения - 26. Полный код ошибки:

E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
    Process: com.example.myRestApp, PID: 28626
    java.lang.BootstrapMethodError: Exception from call site #2 bootstrap method
        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.onFailure(DefaultCallAdapterFactory.java:87)
        at retrofit2.OkHttpCall$1.callFailure(OkHttpCall.java:142)
        at retrofit2.OkHttpCall$1.onFailure(OkHttpCall.java:137)
        at okhttp3.RealCall$AsyncCall.run(RealCall.kt:153)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: java.lang.ClassCastException: Bootstrap method returned null
        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.onFailure(DefaultCallAdapterFactory.java:87) 
        at retrofit2.OkHttpCall$1.callFailure(OkHttpCall.java:142) 
        at retrofit2.OkHttpCall$1.onFailure(OkHttpCall.java:137) 
        at okhttp3.RealCall$AsyncCall.run(RealCall.kt:153) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:764) 

Я уже включил Java 8 в моем файле build.gradle. Мой Java класс, как показано ниже:

private void getPhotos() {
        ApiInterfrace apiInterfrace = ServiceGenerator.createService(ApiInterfrace.class);
        Call<List<Photo>> photosList = apiInterfrace.getPhotos();
        photosList.enqueue(new Callback<List<Photo>>() {
            @Override
            public void onResponse(Call<List<Photo>> call, Response<List<Photo>> response) {
                if (response.isSuccessful()) {
                    for (Photo photo : response.body()) {
                        photos.add(photo);
                     //   Log.d("TAG", photo.getUrl().getFull());

                    }
                    photosAdatper.notifyDataSetChanged();
                } else {
                    Log.d(TAG, "Fail");
                }
                showProgressbar(false);
            }

            @Override
            public void onFailure(Call<List<Photo>> call, Throwable t) {
                Log.d(TAG, "fail" + t.getMessage());
            }
        });
    }

1 Ответ

0 голосов
/ 30 января 2020

Попробуйте изменить версию Gradle на версию 1.8 вместо 8

compileOptions {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}
...