我正在使用改造2来查询TMDB api。在我正在进行的call.enqueue方法中
List<Movie> movies = response.body.getMovies();
当我运行时,我得到一个错误,说方法getMovies产生空指针异常
API-INTERFACE
public interface ApiInterface {
@GET("/movie/now_playing")
Call<MainMovieNowPlayingResponse> getNowPlayingMovies(@Query("page")int
page, @Query("api_key") String API_KEY);
}
这是我的ApiClient类
public class ApiClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(){
if (retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl("https://api.themoviedb.org/3")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}}
这是从片段
调用的入队方法ApiInterface service = ApiClient.getClient().create(ApiInterface.class);
Call<MainMovieNowPlayingResponse> call = service.getNowPlayingMovies(1,API_KEY);
call.enqueue(new Callback<MainMovieNowPlayingResponse>() {
@Override
public void onResponse(Call<MainMovieNowPlayingResponse> call, Response<MainMovieNowPlayingResponse> response) {
if (response.code() == 200 && response.isSuccessful()){
movies = response.body().getResults();
}
}
@Override
public void onFailure(Call<MainMovieNowPlayingResponse> call,
Throwable t) {
}
});
我从片段的onCreateView方法调用它,它是标签视图的一部分。
我获得的错误是response.body.getMovies()
来电中的 NULL指针异常。
我的错误在哪里?
在你投票之前因为这是NullPointer的另一个问题,我知道空指针异常是什么。我只是无法在此代码中找到错误。
我的错误在哪里?
答案 0 :(得分:1)
我修好了。我没有基本网址和Api端点的问题。 基本网址必须以/结束,而我用/
开始我的端点