Android蓝牙标签查看强制关闭错误

问题描述:

我正在实施一个基于GPS的户外定位器应用程序。Android蓝牙标签查看强制关闭错误

我使用tabview在第一个选项卡中有地图和GPS,并在第二个选项卡蓝牙连接。

在模拟器上,第一个选项卡工作得很好,第二个选项卡我无法测试。

当我在Android设备上启动它时,应用程序被强制关闭,并且出现此错误,我无法确定应用程序出了什么问题。

任何帮助将是非常赞赏,

`06-05 23:31:36.961: ERROR/AndroidRuntime(3889): FATAL EXCEPTION: main 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889): java.lang.NoSuchMethodError:  android.bluetooth.BluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at trail.com.BluetoothChatService$AcceptThread.<init>(BluetoothChatService.java:280) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at trail.com.BluetoothChatService.start(BluetoothChatService.java:119) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at trail.com.BluetoothChat.onResume(BluetoothChat.java:144) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.Activity.performResume(Activity.java:3823) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3124) 
06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:170) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.LocalActivityManager.dispatchResume(LocalActivityManager.java:518) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.ActivityGroup.onResume(ActivityGroup.java:58) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.Activity.performResume(Activity.java:3823) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3124) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3149) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2064) 
06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.os.Handler.dispatchMessage(Handler.java:99) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.os.Looper.loop(Looper.java:123) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at android.app.ActivityThread.main(ActivityThread.java:4633) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at java.lang.reflect.Method.invokeNative(Native Method) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at java.lang.reflect.Method.invoke(Method.java:521) 

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
06-05 23:31:36.961: ERROR/AndroidRuntime(3889):  at dalvik.system.NativeStart.main(Native Method) 

06-05 23:31:36.971: ERROR/RequestQueueHelper(3939): [Thread-10/10] Next pending job not found!! 

我打电话listenUsingInsecureRfcommWithServiceRecord在以下部分:

public AcceptThread(boolean secure) { 
     BluetoothServerSocket tmp = null; 
     mSocketType = secure ? "Secure":"Insecure"; 

     // Create a new listening server socket 
     try { 
      if (secure) { 
       tmp = mAdapter.listenUsingRfcommWithServiceRecord(NAME_SECURE, 
        MY_UUID_SECURE); 
      } else { 
       tmp = mAdapter.listenUsingInsecureRfcommWithServiceRecord(
         NAME_INSECURE, MY_UUID_INSECURE); 
      } 
     } catch (IOException e) { 
      Log.e(TAG, "Socket Type: " + mSocketType + "listen() failed", e); 
     } 
     mmServerSocket = tmp; 
    } 
+0

你能告诉我们你调用'listenUsingInsecureRfcommWithServiceRecord()'的代码吗? – 2011-06-06 00:01:56

+0

@willytate我已经添加了我称之为的部分 – Error 2011-06-06 07:26:30

可能的解决方案是采用试戴catch块,并尝试运行应用程序。

try{ 
public AcceptThread(boolean secure) { BluetoothServerSocket tmp = null; mSocketType = secure ? "Secure":"Insecure"; 
} 
catch(Exception e){ 
e.printStackTrace(); 
} 

另外,请检查您所遇到的设备的操作系统版本...

这致命异常的发生是由于这可能是你的设备的操作系统版本较低,该方法是不存在的理由设备ROM。