java - 致命异常 : OkHttp Dispatcher when trying to retrieve data from API using Retrofit

标签 java android retrofit2 okhttp

我已经浏览了几个 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) 

我已经在 build.gradle 文件中启用了 Java 8。我的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());
            }
        });
    }

最佳答案

尝试将你的 gradle 更改为版本 1.8 而不是 8

compileOptions {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}

关于java - 致命异常 : OkHttp Dispatcher when trying to retrieve data from API using Retrofit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59983848/

相关文章:

android - DatePickerDialog 显示例如M 加整数代替月份名称

java - Android 时间和字符串

android - 如何通过改造发送 List<String> ?

java - Swing - 确保文本组件中的可见行

java - 使用 java 中另一个类的方法更新 jbutton 的 jlabel onclick

java - BigInteger:以可扩展的方式计算小数位数

android - SSL握手异常改造android

java - 如何从给定值获取平均值

java - Android 如何显示已下载文件的列表?

android - 如何在改造中发布 x-www-form-urlencoded