致命异常:OkHttp Dispatcher 尝试使用 Retrofit 从 API 检索数据时

FATAL EXCEPTION: OkHttp Dispatcher when trying to retrieve data from API using Retrofit

我已经了解了几个 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.onFailure(DefaultCallAdapterFactory.java:87)
        at retrofit2.OkHttpCall.callFailure(OkHttpCall.java:142)
        at retrofit2.OkHttpCall.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.onFailure(DefaultCallAdapterFactory.java:87) 
        at retrofit2.OkHttpCall.callFailure(OkHttpCall.java:142) 
        at retrofit2.OkHttpCall.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) 

我已经在我的 build.gradle 文件中启用了 Java 8。我的Javaclass如下:

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());
            }
        });
    }

尝试将您的 gradle 版本从 8 更改为 1.8

compileOptions {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}