retrofit:Unable to create call adapter for class java.lang.Object
原因:Retrofit中未找到Object类相对应的CallAdapter
解决方法:
1 看callAdapterFactory是否添加正确
2 retrofit接口方法不能suspend
1 | interface Api{ |
suspendfun getTokenAsync(): Deferred
原理:retrofit源码中用到动态代理,返回值类型存放在动态代理的method方法中。加了suspend关键字后method.getReturnType恒为Object类型(再问为什么我也不知道了)