android:showAsAction =“always”和ListActivity崩溃:无法启动活动ComponentInfo

时间:2014-12-13 22:03:25

标签: android android-actionbar android-menu android-bluetooth android-actionbaractivity

我正在尝试改编优秀书籍Getting Started with Bluetooth Low Energy中的一个例子。

以下是他们的MainActivity.java,这是他们的res/menu/main.xml

<item android:id="@+id/action_scan" 
    android:showAsAction="always" 
    android:title="Scan"></item>

<item android:id="@+id/action_stop" 
    android:showAsAction="always" 
    android:title="Stop"></item>

然而,在我自己的应用中,我想使用ListActivity作为主MainActivity.java的基础分支(因为我想在主列表中显示找到的蓝牙设备)。

这会导致我的应用程序崩溃并显示模糊的错误消息:

  

java.lang.RuntimeException:无法启动活动   ComponentInfo {de.afarber.mynotification / de.afarber.mynotification.MainActivity}:   显示java.lang.NullPointerException

我想这是因为我想在ActionBar中显示“扫描”和“停止”按钮,但我没有使用ActionBarActivity作为基类。

有没有办法解决它仍然使用ListActvivity

1 个答案:

答案 0 :(得分:0)

好吧我在创建它之前尝试使用mBlewWrapper: - )

if (mBleWrapper.checkBleHardwareAvailable() == false) {
    Toast.makeText(this, 
                   R.string.no_ble_hardware, 
                   Toast.LENGTH_LONG).show();
    finish();
}       

mBleWrapper = new BleWrapper(this, new BleWrapperUiCallbacks.Null() {
    @Override
    public void uiDeviceFound(final BluetoothDevice device, 
                              final int rssi, 
                              final byte[] record) {
        Log.d("uiDeviceFound", device.getName()+", "+
              rssi+", "+record.toString());
    }
});  

感谢CommonWare的评论和+1。