关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

NullPointerException:method 'android.content.BroadcastReceiver.onReceive' on a null object reference

发布时间:2023-06-28 22:00:21

   最近在使用广播的时候遇到了这个问题,项目里面使用了极光推送,然后项目里有几个地方都需要写广播接收者去接收,所以我只在一个地方写了,然后其他的地方就是copy过去的,然后就报了这个错误,总的来说,这个错误是自己不细心造成,但是,找问题还是花了我一点时间的,所以也再次做一个记录。错误日志如下:


NullPointerException:method 'android.content.BroadcastReceiver.onReceive' on a null object reference

   


一看就是报了空指针,但是并没有说明是在哪一行报错的,这就尴尬了,不过凭经验来看,就是调用了空数据,onReceive里面最容易空的,就是context了,但是debug打印了一圈,发现这里面代码并没有问题,于是我就重写了这部分代码,写的过程中才发现了问题,我自定义的类虽然继承了广播接收者,但是,因为注册和实例化是分开的,所以复制代码的时候少复制了一行,下次在遇到这类问题的时候,就自己去检查context和广播接受者是否实例化了。


所以,最后在写代码的时候,相关的代码最好写在同一个地方或者一个方法内,这样容易在报错的时候方便排查。如下:

//初始化和注册广播 private void initBroadcast(){  updateAttendanceReceiver = new UpdateAttendanceReceiver();  registerUpdateAttendanceBroadcast();  }

   





/template/Home/leiyu/PC/Static