【问题标题】:NullPointerException: Attempt 'void com.mobiledealer.dao.OrderDAO.insertOrUpdate(com.mobiledealer.model.Order)' on a null object reference [duplicate]NullPointerException:在空对象引用上尝试“void com.mobiledealer.dao.OrderDAO.insertOrUpdate(com.mobiledealer.model.Order)”[重复]
【发布时间】:2017-09-17 02:31:12
【问题描述】:

您好,我对 REST 的响应有疑问。我收到 Object Json 解析它,一切看起来都很好,但是当我尝试将它添加到领域时,我得到空指针异常。 这是我的项目的链接: https://github.com/666Angelus666/MobileDealer

MainActivity 中我调用函数synchronizeContractorsItems 然后在第3 次调用中我得到了错误。 Line where i get error

【问题讨论】:

  • 请在问题中包含代码和堆栈跟踪,而不是屏幕截图。
  • 你在列表中有一个null....
  • 在此处粘贴代码。我们不必为了找到您需要帮助的代码而挖掘您的存储库。

标签: java android json rest retrofit2


【解决方案1】:

我看过你的代码。我认为这个问题是因为你没有在你的活动中初始化你的orderDAO对象你必须在使用之前初始化你的orderDAO对象

orderDAO = new OrderDAO();


Call<OrderResponse> orderResponseCall = apiService.getOrdersList();
        orderResponseCall.enqueue(new Callback<OrderResponse>() {
            @Override
            public void onResponse(Call<OrderResponse> call, Response<OrderResponse> response) {
                orderList = response.body().getOrdersList();

                for (Order order : orderList) {
                    try {
                        orderDAO.insertOrUpdate(order);
                    } catch (Exception e) {
                        Log.d("REST", "Error");
                        e.printStackTrace();
                    }
                }
            }`

我认为这可能会解决您的问题。

【讨论】:

  • 是的,你说得对,我在代码开始工作后忘记初始化orderDAO。谢谢帮助。
  • 很高兴能帮到你!快乐编码
【解决方案2】:

嫌疑人可能是您的订单可能为空,可能是空检查会有所帮助

 public void insertOrUpdate(Order order) {

 if(order != null)

 {

    realm.beginTransaction();
    realm.insertOrUpdate(order);
    realm.commitTransaction();

 }

    }`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2015-06-05
    • 2016-07-21
    相关资源
    最近更新 更多