2011-05-08 4 views
0

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()'를 호출하는 코드를 표시 할 수 있습니까? –

+0

@willytate 내가 호출 한 부분을 추가했습니다. – Error

답변

0

가능한 해결책은 try- catch 블록을 적용하고 응용 프로그램을 실행하려고합니다.

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

이 발생하는 장치의 OS 버전을 확인은 ...

이 치명적인 예외 인해 장치의 운영 체제 버전이 낮고 방법은 거기에없는 수 있습니다 이유에 발생 장치 ROM.