NullPointerException: Attempt to read from field 'XXX'on a null object reference

SUMI_SUMI 2019-10-07 02:28:25
最近写了个android的通讯小程序,如下

private boolean sending = false;
private SendThread sendThread = null; //发指令线程
class SendThread extends Thread {
@Override
public void run() {
try {
int rs = 0;
ReturnValue errinfo = new ReturnValue();
while (sending) {

} else {

}

}
}
}
catch (Exception ex)
{
Log.e("异常!!!!!!!!!!!!!!!", ex.toString() );
sending = false;
}
finally {
sending = false;
}

}


然后运行的时候不定期出错,日志如下:
java.lang.NullPointerException: Attempt to read from field 'int Uart$Ttype.sendflag' on a null object reference

这个报错是不固定出现的
请问一般什么原因造成这个现象?
是消息队列的问题吗?
...全文
933 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SUMI_SUMI 2019-10-08
  • 打赏
  • 举报
回复
引用 5 楼 麦洛_ 的回复:
出现问题的地方打印日志,方便排查问题呗

java.lang.NullPointerException: Attempt to read from field 'int Uart$Ttype.sendflag' on a null object reference

上面这个就是Log.e("异常!!!!!!!!!!!!!!!", ex.toString() );打印出来的
但是sendflag是定义的一个int型.....< public int sendflag = 0; >
爱写Bug的麦洛 2019-10-08
  • 打赏
  • 举报
回复
出现问题的地方打印日志,方便排查问题呗
oh_Maxy 2019-10-08
  • 打赏
  • 举报
回复
引用 3 楼 SUMI_SUMI 的回复:
[quote=引用 2 楼 oh_Maxy 的回复:]
老兄,空指针应该是最好定位的问题啦!
看看异常堆栈,找到业务代码异常的地方,使用某个对象前,增加非空判断吧。


因为这个报错并不是每次都发生的
相同的流程
有时报有时不报
所以感觉不是空指针这么简单的原因........[/quote]
也可能是数据问题。比如读取一些数据,有时候有数据,有时候没数据,是不一样的。
SUMI_SUMI 2019-10-08
  • 打赏
  • 举报
回复
引用 2 楼 oh_Maxy 的回复:
老兄,空指针应该是最好定位的问题啦!
看看异常堆栈,找到业务代码异常的地方,使用某个对象前,增加非空判断吧。


因为这个报错并不是每次都发生的
相同的流程
有时报有时不报
所以感觉不是空指针这么简单的原因........
oh_Maxy 2019-10-07
  • 打赏
  • 举报
回复
老兄,空指针应该是最好定位的问题啦!
看看异常堆栈,找到业务代码异常的地方,使用某个对象前,增加非空判断吧。
faith.huan 2019-10-07
  • 打赏
  • 举报
回复
代码不全,异常堆栈不全,看不出来

58,448

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧