蓝牙4.0搜索设备程序报错: null object reference error

youyiyang 2016-10-18 02:50:14
请问我在蓝牙ble调试的时候,搜索蓝牙设备的时候报这个错:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mybleyyy/com.example.mybleyyy.ControlActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.bluetooth.BluetoothAdapter.startLeScan(android.bluetooth.BluetoothAdapter$LeScanCallback)' on a null object reference
是哪里出问题了?

private void scanLeDevice(final boolean enable) {
if (enable) {
// Stops scanning after a pre-defined scan period.
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mScanning = false;
adapter.stopLeScan(mLeScanCallback);
invalidateOptionsMenu();
}
}, 10000);

mScanning = true;
adapter.startLeScan(mLeScanCallback); //mScanning = false;
//adapter.stopLeScan(mLeScanCallback);
//System.err.println("*************停止BLE扫描*************");
for(BluetoothDevice btd : bluetoothDevicesSet){
HashMap<String, String> mapName = new HashMap<String, String>();
mapName.put("ItemTitle", btd.getName()+"/address:"+btd.getAddress());
System.err.println("*************ItemTitle*************"+btd.getName());
mylist.add(mapName);
bluetoothDevicesList.add(btd);
simpleAdapter = new SimpleAdapter(getApplicationContext(), mylist, R.layout.bt_device_list, new String[] {"ItemTitle"}, new int[] {R.id.device_name});
//加载SimpleAdapter到ListView中
listview_newDevices.setAdapter(simpleAdapter);
}} else {
mScanning = false;
adapter.stopLeScan(mLeScanCallback);
}
invalidateOptionsMenu();
}



private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
System.err.println("onLeScan:"+device.getAddress()+"*******"+device.getName()+"*******");
Toast.makeText(ControlActivity.this, "onLeScan:"+device.getAddress()+"*******"+device.getName()+"*******", Toast.LENGTH_SHORT).show();
bluetoothDevicesSet.add(device);
}
});
}
};
...全文
403 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻影宇寰 2016-10-18
  • 打赏
  • 举报
回复
adapter为null
oddshou 2016-10-18
  • 打赏
  • 举报
回复
不是不是你的adapter在执行这段代码前还没有初始化
冰红儿茶 2016-10-18
  • 打赏
  • 举报
回复
还有你的onLeScan方法不需要runOnUIThread吧?
冰红儿茶 2016-10-18
  • 打赏
  • 举报
回复
你for循环应该写在mLeScanCallback 这个回调里面吧,写在外面的话蓝牙还没有搜索到设备,你就开始循环了,就空指针了。
冰红儿茶 2016-10-18
  • 打赏
  • 举报
回复
我写的东西不会都没了吧?

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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