当我在 Eclipse 上创建一个新的 BlueToothChat 项目时,它编译得非常好,然后我可以将它下载到我的 Galaxy S3(运行 Android 4.1.1)中。如果 BT 被禁用,它会要求启用它。当我这样做时,应用程序进入然后崩溃:
02-06 13:40:52.959: E/AndroidRuntime(25405): FATAL EXCEPTION: main
02-06 13:40:52.959: E/AndroidRuntime(25405): java.lang.NoSuchMethodError: com.example.android.BluetoothChat.BluetoothChat.getActionBar
02-06 13:40:52.959: E/AndroidRuntime(25405): at com.example.android.BluetoothChat.BluetoothChat.setStatus(BluetoothChat.java:234)
02-06 13:40:52.959: E/AndroidRuntime(25405): at com.example.android.BluetoothChat.BluetoothChat.access$4(BluetoothChat.java:233)
02-06 13:40:52.959: E/AndroidRuntime(25405): at com.example.android.BluetoothChat.BluetoothChat$2.handleMessage(BluetoothChat.java:260)
02-06 13:40:52.959: E/AndroidRuntime(25405): at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 13:40:52.959: E/AndroidRuntime(25405): at android.os.Looper.loop(Looper.java:150)
02-06 13:40:52.959: E/AndroidRuntime(25405): at android.app.ActivityThread.main(ActivityThread.java:4263)
02-06 13:40:52.959: E/AndroidRuntime(25405): at java.lang.reflect.Method.invokeNative(Native Method)
02-06 13:40:52.959: E/AndroidRuntime(25405): at java.lang.reflect.Method.invoke(Method.java:507)
02-06 13:40:52.959: E/AndroidRuntime(25405): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-06 13:40:52.959: E/AndroidRuntime(25405): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-06 13:40:52.959: E/AndroidRuntime(25405): at dalvik.system.NativeStart.main(Native Method)
然后我用运行 Android 2.3.5 的 HTC EVO 4G 重复了完全相同的测试。完全相同的问题!
我已经找到了这个问题,但答案不好。解释是显然 getActionBar() 调用会生成 NULL。我尝试了两种建议的解决方案,但都没有解决问题。一个本应完美无瑕的示例应用程序不起作用,这有点烦人!
关于如何使蓝牙聊天应用程序工作的任何其他建议?我需要将串行数据发送到一个应用程序,并找到了一个很好的教程,几乎可以使用这个应用程序,但如果应用程序在不同平台上崩溃,那就没用了。感谢您提供的任何意见!