2
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クラス(いくつかのBluetoothクラスのラッパー)を初期化したにもかかわらず、ここでNullPointer例外が発生します。

4

1 に答える 1

0
BluetoothManager btManager = new BluetoothManager(this);

onCreateでローカルにのみ宣言されます。

BlueToothManager btManager;クラス全体のフィールド(クラス宣言のすぐ下)として配置してみてください。次に、oncreate内で:

btManager = new BluetoothManager(this); 

次に、onResume内にnullpointerがなくてもアクセスできるかどうかを確認します。

于 2012-06-06T00:14:42.003 に答える