android 接收广播意图错误:java.lang.RuntimeException: Error receiving broadcast Intent { act=android.bluetoot

今天在调试毕设项目的时候,点击“搜索蓝牙”按钮,竟然无故运行停止,看了logcat信息为:


奇怪,我以前从没遇到过这个问题,赶紧去拷问度娘,发现遇到这个问题的人还真不少,这真应了那句话:你目前正在做的事情之前一定有人已经做过,而且比你做得好。

方法一:操作都放进if语句中

http://blog.csdn.net/yangqicong11/article/details/8955674

上面这篇博客的作者给出的解决方案是:

在广播接收器的OnReceive函数中,将除了String action = intent.getAction() 的操作放到if语句中,保证广播接收器的不同ACTION不会处理相同的取函数代码

但说实话,我除了这条语句,其他的还真的都在if语句中,所以该方法对我没用。不过,说不定在其他地方可用。


方法二:避免对Null对象操作

http://stackoverflow.com/questions/27709194/error-receiving-broadcast-intent-act-android-bluetooth-device-action-found-flg

方法源自这篇帖子,原话是这么说的:

bthDispositivosArea, your ArrayAdapter is null because you haven't initialized it anywhere. And you're trying to add something to a null object.

我检查了一下,我的代码里的确有对listView适配器的操作,可能就是在这个控件还没初始化广播接收器就调用,导致了问题。故修改了代码:

 

当然,代码只截取了片段,但里面包含我修改的部分,方便以后查看。




©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页