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