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

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

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


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

20191231142843746.jpg


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


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

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




相关文章
|
4月前
|
XML 缓存 API
【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.
【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.
|
5月前
|
SQL 安全 Java
Android经典面试题之Kotlin中object关键字实现的是什么类型的单例模式?原理是什么?怎么实现双重检验锁单例模式?
Kotlin 单例模式概览 在 Kotlin 中,`object` 关键字轻松实现单例,提供线程安全的“饿汉式”单例。例如: 要延迟初始化,可使用 `companion object` 和 `lazy` 委托: 对于参数化的线程安全单例,结合 `@Volatile` 和 `synchronized`
69 6
|
7月前
|
API Android开发
android setTag (int key, Object tag)使用
android setTag (int key, Object tag)使用
72 1
|
7月前
|
存储 Android开发
Android 高版本 packageManager.getPackageArchiveInfo 总是返回null
Android 高版本 packageManager.getPackageArchiveInfo 总是返回null
295 1
|
数据库 Android开发 数据库管理
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
387 0
|
7月前
|
JavaScript
[Vue warn]: Method “components“ has type “object“ in the component definition. Did you reference the
[Vue warn]: Method “components“ has type “object“ in the component definition. Did you reference the
|
Ruby
浅谈Ruby中的block, proc, lambda, method object的区别
浅谈Ruby中的block, proc, lambda, method object的区别
85 0
|
JSON Android开发 数据格式
Android:解析Json异常 Expected a string but was BEGIN_OBJECT at
今天解析后端数据时,发现了这个报错:Expected BEGIN_OBJECT but was STRING at 看来是自己哪儿解析错误了。 因为数据的特殊性,后端返回的Json串里面可能还会有Json数据,可能嵌套了三次层,
|
SQL Java 数据库连接
org.apache.ibatis.binding.BindingException: Mapper method 'attempted to return null from a method wi...
org.apache.ibatis.binding.BindingException: Mapper method 'attempted to return null from a method wi...
229 0
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
117 4