public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    BluetoothManager btManager = new BluetoothManager(this);
    setContentView(R.layout.main);

    if (!btManager.isEnabled()) {
        btManager.requestBluetoothEnable();
        discoveryStarted = false;

    } else {
        if (btManager.isDeviceSetNullOrEmpty()) {
            btManager.startDiscovery();
            discoveryStarted = true;
        }

    }

}

@Override
public void onResume(){
    super.onResume();

    if( btManager.isEnabled() && discoveryStarted == false ){


即使初始化了btManager类(一些蓝牙类的包装器),我仍然在这里得到NullPointer异常。

最佳答案

BluetoothManager btManager = new BluetoothManager(this);


仅在onCreate中本地声明。

尝试将BlueToothManager btManager;作为类范围的字段(仅在类声明下方)。然后,在oncreate中:

btManager = new BluetoothManager(this);


然后,查看是否可以在onResume中没有nullpointer的情况下访问它!

09-04 18:23