Object java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap不能强制转换为ClassName

Object java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap不能强制转换为ClassName,object,observable,retrofit,rx-java,rx-android,Object,Observable,Retrofit,Rx Java,Rx Android,我使用的Api使用改进和rxjava处理Api的两个响应。我正在创建响应模型和错误模型。 我不知道如何在一个Api中处理这两个响应,这里是我的实现 @POST("login/") Observable<Response<Object>> login(@Body LoginParamModel model); 我得到了这种类型的异常: W:io.reactivex.exceptions.UndeliverableException:无法将异常传递给使用者,因为它已取消/处

我使用的Api使用改进和rxjava处理Api的两个响应。我正在创建响应模型和错误模型。 我不知道如何在一个Api中处理这两个响应,这里是我的实现

@POST("login/")
Observable<Response<Object>> login(@Body LoginParamModel model);
我得到了这种类型的异常:

W:io.reactivex.exceptions.UndeliverableException:无法将异常传递给使用者,因为它已取消/处置流,或者该异常无处可去。进一步阅读:'s-different-in-2.0#错误处理| java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap不能强制转换为com.model.login.LoginDataModel

W:原因:java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap无法强制转换为com.model.login.LoginDataModel

LoginDataModel是我的Api响应模型类,这里是RetroClientClass

public class RetroClient {
private static Retrofit retrofit = null;
private Context mContext;

public static Retrofit getClient(String BaseUrl) {
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.level(HttpLoggingInterceptor.Level.BODY);

    OkHttpClient client = new OkHttpClient
            .Builder()
            .addInterceptor(new Interceptor() {
                @NotNull
                @Override
                public Response intercept(@NotNull Chain chain) throws IOException {

                    String token = CommonUtill.ACCESS_TOKEN;
                    Request request = chain.request();

                    request = request.newBuilder()
                            .addHeader("Content-Type", "application/x-www-form-urlencoded")
                            .addHeader("Authorization", "Bearer " + token)
                            .addHeader("X-TOKEN-AUTHENTICATION", "True")
                            .build();
                    return chain.proceed(request);
                }
            })
            .readTimeout(10, TimeUnit.SECONDS)
            .connectTimeout(30, TimeUnit.SECONDS)
            .addInterceptor(interceptor)
            .build();


    if (retrofit == null) {
        retrofit = new Retrofit.Builder()
                .baseUrl(BaseUrl)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(client)
                .build();
    }
    return retrofit;
}

}

请更改API接口

@POST("login/")
Observable<Response<LoginDataModel>> login(@Body LoginParamModel model);
@POST(“login/”)
可观察登录(@Body LoginParamModel model);

如何定义接口。您是否设置了RxJava适配器:?@akarnokd请检查更新的代码您是否尝试了
可观察的
public class RetroClient {
private static Retrofit retrofit = null;
private Context mContext;

public static Retrofit getClient(String BaseUrl) {
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.level(HttpLoggingInterceptor.Level.BODY);

    OkHttpClient client = new OkHttpClient
            .Builder()
            .addInterceptor(new Interceptor() {
                @NotNull
                @Override
                public Response intercept(@NotNull Chain chain) throws IOException {

                    String token = CommonUtill.ACCESS_TOKEN;
                    Request request = chain.request();

                    request = request.newBuilder()
                            .addHeader("Content-Type", "application/x-www-form-urlencoded")
                            .addHeader("Authorization", "Bearer " + token)
                            .addHeader("X-TOKEN-AUTHENTICATION", "True")
                            .build();
                    return chain.proceed(request);
                }
            })
            .readTimeout(10, TimeUnit.SECONDS)
            .connectTimeout(30, TimeUnit.SECONDS)
            .addInterceptor(interceptor)
            .build();


    if (retrofit == null) {
        retrofit = new Retrofit.Builder()
                .baseUrl(BaseUrl)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(client)
                .build();
    }
    return retrofit;
}
@POST("login/")
Observable<Response<LoginDataModel>> login(@Body LoginParamModel model);