安卓蓝牙程序中android java.lang.…

上个礼拜跑的蓝牙程序中出现了一出现就跳出,activity根本跑不出来的情况。看catlog,发现报的一堆错误中除了一堆java、android包的错误外,自己包中的错误有两条,另外开头的一条错误就是android java.lang.NullPointerException。

于是我debug的力气就花在自己包中报错的那两行代码中。那两行代码其实是非常简单的句子,一条是一个方法的声明,还有一条是一个List的adapter方法。在那两行代码上下几行中找了半天,也没什么发现,懊恼+无奈,论坛上找了很久,网友的解答千奇百怪,一条条试过来,最后发现还是不能解决问题。最后甚至跑SDK中的实例蓝牙程序竟然都跑不起来,很不爽。后来干脆就放在一边了。今天晚上吃好饭回来又开始找,还是从报错的那两行代码入手debug,这次上下查找的范围更大,把和他们相关的所有句子都找过了。最后在一个网友为他人解答中找出了问题。那位网友大致的说法是程序中只是做了声明,但是没有实例化,这样的情况下一般会报空指针错误。

于是我从变量声明入手,发现了问题所在,是下面这句语句!

private ArrayList<BluetoothDevice> foundDevices;

上面这句声明中,也就是那位网友说的,只有声明,没有实例化,所以报了android java.lang.NullPointerException的错误!于是,我将这句声明改了下:

private List<BluetoothDevice> foundDevices = new ArrayList<BluetoothDevice>();

果不其然,就在刚才,十分钟之前,程序跑起来了,至少是activity出来了,不会出现force stop!呼!!!下面还要验证其他功能,加油!

两点收获:

1、android报错,在一堆赤字中,关注自己包中的错误,然后找和它们相关的所有上下文进行排错。不必过分拘泥其他的红字。

2、每个bug都是独一无二的,需要你这个bug制造者自己去扼杀,除非是一个高手在你身边,否则不可能假手于人,一定要耐心掌握debug。

加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值