You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动OrderScreen时调用CoffeeViewModel.getAllOrders()空指针异常如何修复

问题修复方案

错误根源

崩溃日志明确指向空指针异常:OrderScreen中声明的CoffeeViewModel类型变量coffeeViewModel仅完成了声明,没有做初始化操作就直接调用了getAllOrders()方法,触发空引用崩溃。

修复步骤

在OrderScreen的onCreate方法中,调用coffeeViewModel.getAllOrders()之前添加ViewModel初始化代码即可:

//  CoffeeViewModel继承了AndroidViewModel,需要用Application级别的Factory完成实例化
coffeeViewModel = new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication())).get(CoffeeViewModel.class);

参考插入位置:

this.binding.recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));

// 此处插入上面的初始化代码
coffeeViewModel = new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication())).get(CoffeeViewModel.class);

this.coffeeViewModel.getAllOrders().observe(this, new Observer<List<Coffee>>() {
    // 原有逻辑保持不变
});

额外优化建议

当前的更新、删除咖啡逻辑是通过咖啡类型、大小、数量匹配记录,如果数据库中存在多条属性完全相同的咖啡记录,会出现误改/误删的问题。建议给Coffee实体类添加自增主键ID字段,后续增删改查都通过ID匹配记录,稳定性更高。

内容的提问来源于stack exchange,提问作者anlelya_black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 18:18:02