调用retrofit.Call<>时出现NullPointerException

时间:2015-12-19 04:49:31

标签: android retrofit

我在Android应用中使用了相同版本的改装版“2.0.0-beta2”和converter-gson。

我在onCreate的{​​{1}}中构建服务:

Fragment

稍后在UI事件上:

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(getString(R.string.api_base_url))
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    mService = retrofit.create(MyService.class);

片刻之后,call = mService.method(params); call.enqueue(methodCallback); 的{​​{1}}未被调用,应用程序因以下回溯而崩溃:

onResponse

我是否错误地使用了改装或者这是一个可能的错误?

由于

2 个答案:

答案 0 :(得分:1)

改造初始化似乎没问题,当你调用" call.enqueue(methodCallback)时,检查回调是否为空;"

答案 1 :(得分:0)

确保回调的类型正确无误。如果你的通话定义如下:

@GET("/api/rooms")
Call<List<Room>> getRooms(
);

然后调用应该是:

retrofit.create(MyService.class).getRooms().enqueue(new Callback<List<Room>>() {
    @Override
    public void onResponse(Response<List<Room>> response, Retrofit retrofit) {

    }

    @Override
    public void onFailure(Throwable t) {

    }
});

对于初学者我会替换:

call.enqueue(methodCallback);

使用匿名类并检查服务是否有效。