我正在实施一个基于GPS的户外定位器应用程序。
我使用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 :(得分:0)
可能的解决方案是应用try-catch块并尝试运行应用程序。
try{
public AcceptThread(boolean secure) { BluetoothServerSocket tmp = null; mSocketType = secure ? "Secure":"Insecure";
}
catch(Exception e){
e.printStackTrace();
}
同时检查您所拥有的设备的操作系统版本......
发生此致命异常的原因可能是您的设备操作系统版本较低且设备ROM中没有该方法。