我在我的项目中导入了改造,并在app.gradle中添加了以下内容:

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'

但现在,当execute调用时,应用程序会崩溃,并出现以下错误:
FATAL EXCEPTION: OkHttp Dispatcher
    Process: com.my.app, PID: 31176
    java.lang.AbstractMethodError: abstract method "void okhttp3.Callback.onResponse(okhttp3.Call, okhttp3.Response)"
      at okhttp3.RealCall$AsyncCall.execute(RealCall.java:133)
      at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:33)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
      at java.lang.Thread.run(Thread.java:818)

我需要导入特定版本的改型(2.0.0-beta3),因为LoganSquare JSON parser否则我会考虑使用以前版本的改型。如何解决这个问题?

最佳答案

问题是,改造需要某些版本的okhttp库。不仅如此,如果导入日志拦截器,还需要确保正确的版本。所以,在我看来,这有助于:

compile 'com.squareup.okhttp3:okhttp:3.0.0-RC1'
compile 'com.squareup.okhttp3:logging-interceptor:3.0.0-RC1'
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'

这在GitHub issue page that's closed上有很好的记录,因此不容易找到。
那些抱怨java.lang.AbstractMethodError: abstract method "void okhttp3.Callback.onFailure(okhttp3.Call, java.io.IOException)"的人说,如果不使用日志拦截器,可以完全删除okhttp3的导入。
对于使用LoganSquare的用户,您还需要:
apt 'com.bluelinelabs:logansquare-compiler:1.3.4'
compile 'com.bluelinelabs:logansquare:1.3.4'
compile 'com.github.aurae.retrofit2:converter-logansquare:1.2.

关于android - 改造2调用失败-抽象方法“void okhttp3.Callback.onResponse”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35204958/

10-10 23:13