java.lang.IllegalArgumentException:无法为接口改装创建调用适配器。调用
myVSApiEndpointInterface中的代码java.lang.IllegalArgumentException:无法为接口改装创建调用适配器。调用,java,android,retrofit,Java,Android,Retrofit,myVSApiEndpointInterface中的代码 @POST(REGISTER_USER) Call registerUser(@Body User user); 用户类如下所示 public class User { String email; String password; public User(String email, String password) { this.email = email; this.passw
@POST(REGISTER_USER)
Call registerUser(@Body User user);
用户类如下所示
public class User {
String email;
String password;
public User(String email, String password) {
this.email = email;
this.password = password;
}
}
在主活动中,我以用户为对象
User user = new User("hello_new_user@gmail.com", "123456");
Call call = apiService.registerUser(user);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Response<User> response, Retrofit retrofit) {
int statusCode = response.code();
System.out.print("Veer " +response.body());
}
@Override
public void onFailure(Throwable t) {
// Log error here since request failed
}
});
User User=new User(“你好”\u new_user@gmail.com", "123456");
Call Call=apiService.registerUser(用户);
call.enqueue(新回调(){
@凌驾
公共响应(响应、改装){
int statusCode=response.code();
System.out.print(“Veer”+response.body());
}
@凌驾
失效时的公共无效(可丢弃的t){
//由于请求失败,此处记录错误
}
});
我也试过,
Call<User> registerUser(@Body User user);
callregisteruser(@Body User);
但同样的错误
全程
11-29 10:12:59.299 28854-28854/com.myapp.app W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41017258)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: FATAL EXCEPTION: main
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: java.lang.IllegalArgumentException: Unable to create call adapter for interface retrofit.Call
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: for method VSApiEndpointInterface.registerUser
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.Utils.methodError(Utils.java:177)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:47)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.MethodHandler.create(MethodHandler.java:26)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.Retrofit.loadMethodHandler(Retrofit.java:151)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.Retrofit$1.invoke(Retrofit.java:132)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at $Proxy0.registerUser(Native Method)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at com.myapp.app.activity.LoginActivity$1.onClick(LoginActivity.java:48)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.view.View.performClick(View.java:3517)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.view.View$PerformClick.run(View.java:14155)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:605)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:92)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.os.Looper.loop(Looper.java:137)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:4508)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:511)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Call return type must be parameterized as Call<Foo> or Call<? extends Foo>
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.Utils.getCallResponseType(Utils.java:185)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.ExecutorCallAdapterFactory.get(ExecutorCallAdapterFactory.java:35)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.Retrofit.nextCallAdapter(Retrofit.java:189)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.Retrofit.callAdapter(Retrofit.java:175)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:45)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.MethodHandler.create(MethodHandler.java:26)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.Retrofit.loadMethodHandler(Retrofit.java:151)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at retrofit.Retrofit$1.invoke(Retrofit.java:132)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at $Proxy0.registerUser(Native Method)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at com.myapp.app.activity.LoginActivity$1.onClick(LoginActivity.java:48)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.view.View.performClick(View.java:3517)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.view.View$PerformClick.run(View.java:14155)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:605)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:92)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.os.Looper.loop(Looper.java:137)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:4508)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:511)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
11-29 10:12:59.299 28854-28854/com.myapp.app W/dalvikvm:threadid=1:线程以未捕获异常退出(组=0x41017258)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:致命异常:main
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:java.lang.IllegalArgumentException:无法为接口改装创建调用适配器。调用
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:for方法vsapidentpointinterface.registerUser
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at reformation.Utils.methodError(Utils.java:177)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at reformation.MethodHandler.createCallAdapter(MethodHandler.java:47)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at reformation.MethodHandler.create(MethodHandler.java:26)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at reformation.reformation.loadMethodHandler(reformation.java:151)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at reformation.reformation$1.invoke(reformation.java:132)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at$Proxy0.registerUser(本机方法)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:com.myapp.app.activity.LoginActivity$1.onClick(LoginActivity.java:48)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at-android.view.view.performClick(view.java:3517)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at-android.view.view$PerformClick.run(view.java:14155)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at-android.os.Handler.handleCallback(Handler.java:605)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at-android.os.Handler.dispatchMessage(Handler.java:92)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at-android.os.Looper.loop(Looper.java:137)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at-android.app.ActivityThread.main(ActivityThread.java:4508)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at java.lang.reflect.Method.invokenactive(本机方法)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:at java.lang.reflect.Method.invoke(Method.java:511)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:dalvik.system.NativeStart.main(本机方法)
11-29 10:12:59.326 28854-28854/com.myapp.app E/AndroidRuntime:原因:java.lang.IllegalArgumentException:调用返回类型必须参数化为Call或Call我遇到了相同的问题。它在调试模式下工作,在发布模式下失败
问题是因为职业后卫的规则
这就是帮助我的原因
这里的改装和Okio规则对我很有用。包括完整的堆栈跟踪HTTP POST返回什么?如果它返回一个JSON数据,那么创建一个与返回JSON匹配的POJO,并相应地将方法签名更改为returnCall
Hi,您能检查一下这个问题吗