当前位置: 首页 > 知识库问答 >
问题:

改造中的空点对象引用

督宏旷
2023-03-14

我正在尝试使用Reform2调用API获取数据。当我打开应用程序时,它会立即崩溃。我尝试了很多解决方案。我使用postman,但仍然可以看到所有数据都是json格式的。有人能帮我吗?非常感谢你

这是我的日志

Process: tdtu.phongtrosinhvien, PID: 4992
java.lang.NullPointerException: Attempt to invoke interface method 'retrofit2.Call tdtu.phongtrosinhvien.Mode.API.TimTroApi.getdatanewPost()' on a null object reference

ApiClient公司

public class ApiClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(String url) {

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    OkHttpClient client = new OkHttpClient.Builder()
            .readTimeout(60, TimeUnit.SECONDS)
            .connectTimeout(60, TimeUnit.SECONDS)
            .retryOnConnectionFailure(true)
            .addInterceptor(interceptor).build();

    Gson gson = new GsonBuilder()
            .create();
    if (retrofit == null) {
        retrofit = new Retrofit.Builder()
                .baseUrl(url)
                .addConverterFactory(ScalarsConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create(gson))
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(client)
                .build();
    }
    return retrofit;
}

}

aip调用接口

@POST("getDataNewlyPostedRoom.php")
Call<List<Post>> getdatanewPost() ;

这里是我的家片段。

private void loadDataNewPost() {
    TimTroApi.getdatanewPost().enqueue(new Callback<List<Post>>() {
        @Override
        public void onResponse(Call<List<Post>> call, Response<List<Post>> response) {
            if (response.isSuccessful()) {
                postArrayList = (ArrayList<Post>) response.body();
                getDataNewPost(postArrayList);
                swipeContainer.setRefreshing(false);
            }
        }

        @Override
        public void onFailure(Call<List<Post>> call, Throwable t) {
            Log.e("aaa",t.getMessage());
            swipeContainer.setRefreshing(false);
        }
    });

}

共有1个答案

须旭
2023-03-14

问题是您试图在未初始化的对象中调用方法,您应该阅读改装文档

首先创建一个服务,调用您的请求,下面是改装文档中的示例。

GitHubService service = retrofit.create(GitHubService.class);
Call<List<Repo>> repos = service.listRepos("octocat");

改装文档

 类似资料:
  • 因此,我试图从firebase向recyclerview显示图像,但它抛出了一个错误。错误提示E/nite competitive:[qarth _ debug:]get patch store::createDisableExceptionQarthFile方法失败。E/AndroidRuntime:致命异常:主进程:com . example . fortnite competitive,PI

  • 问题内容: 我不知道我的代码有什么问题 这是我的片段课 这是我的SessionManager.java 运行项目时出现的错误: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ void com.example.gandi.symanlub.SessionManager.logoutUser()” 问题答案: 您收到错误消息是因为在此行您正在调用: 会

  • 我试图为我的应用程序实现一个搜索过滤器,但我不知道如何去做。我在这里看到一个问题,但这只会让我更加困惑。这是我目前所做的:我在我的主活动中这样调用片段类 主类活动 RecycleView位于JobsFragment: 完整的StackTrace

  • 我在使用recycler视图启动活动时出错,因此我有3个文件java类、一个适配器和要执行的活动。 java类只是一个具有3个变量的简单对象 回收器视图的适配器 以及活动 我得到的错误是: 我在一个空项目上做了同样的配置,一切看起来都是正确的,

  • 我有一个计时器在第二个活动中。我想从main activity访问它,所以我将chronometer作为public static放在第二个activity中,并将“secondactivity.chronometer”放在main activity中,但是当启动应用程序时,它在空对象引用上显示,我已经检查了xml id是否正确。有人知道怎么解决这个问题吗?

  • 我有来自一个API的数据,看起来如下所示 使用reverfit,我尝试使用下面的代码将它转换为一个对象。为了测试,它目前被提供了一个静态变量,如邮政编码,这是已知的工作。 服务类。 地址类 位置类 地址接口 在使用调试器时,我看到调用跳过onFailure和onResponse函数,只返回仍然为空的addresses。我甚至在这两个函数中都放入了print语句,但终端中都没有显示这两个函数,以确认