마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 aidl을 통한 연결 문제.. 질문드립니다....

0 추천

http://darphin.tistory.com/29

여기 예제를 통해서 서비스에 블루투스 걸어놓고 데이터 처리한 다음에 할일을 변수로 지정한 다음 액티비티에서 작업을 수행하려고 합니다.

서비스와 액티비티는 예제처럼 ​서로 분리된 프로젝트가 아닌 한 프로젝트 안에 다 들어있습니다.

 

05-01 17:15:28.841 16124-16124/com.example.user.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                Process: com.example.user.myapplication, PID: 16124
                                                                                java.lang.NullPointerException
                                                                                    at android.os.RemoteCallbackList.getBroadcastItem(RemoteCallbackList.java:271)
                                                                                    at com.example.user.myapplication.Service_C$4.handleMessage(Service_C.java:292)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                                    at android.os.Looper.loop(Looper.java:146)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5653)
                                                                                    at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                    at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
                                                                                    at dalvik.system.NativeStart.main(Native Method)
05-01 17:20:28.851 16124-16124/com.example.user.myapplication I/Process: Sending signal. PID: 16124 SIG: 9

아래는 제 핸들러 입니당..

 private Handler handler2 = new Handler(new Handler.Callback() {

        @Override
        public boolean handleMessage(Message msg) {
            // TODO Auto-generated method stub

            switch (msg.what) {
                case MSG_WORK:

                    int N = callbacks.beginBroadcast();
                    Log.d(TAG, "handleMessage: 어서 일해라 : "+mChatService.getState());
                    try {
                        callbacks.getBroadcastItem(N).bluetoothlevel(mChatService.getState());
                    } catch (RemoteException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }


                    Log.d("BHC_TEST", "핸들러 작동중.. : " + N + "번째 수행중");
                    callbacks.finishBroadcast();
/*
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
*/
                    //handler2.sendEmptyMessage(MSG_WORK);


                    break;

                case MSG_SOUND:{



                    break;
                }


                default:
                    break;
            }
            return false;
        }
    });

블루투스 상태가 변하면 빈 메시지를 보내개 했습니다. 메세지 종류는 msg_work이고요. 핸들러로 신호가 가긴가나

기존에는 포 루프를 통해서 했던걸로 작업을 수행햇는데 계속 브로드캐스트가 스타트를 넣는 N 값이 계속 0이 나와서 for 루프를 임의로 없에버렷습니다. 결론은 콜벡에 아무것도 들어가지 못하는 상태입니다.

오류는 저렇게 뜨는데 혹시 잘못된 부분이 있나 싶어서 제 코드상에 <>속에 IRemoteServiceCallback가 회색폰트가 회색으로 띄는걸 발견했습니다. 아마도 aidl파일을 인식하지 못하는거 같은데

무슨 문제일까요....

 

이ㅡ글 (240 포인트) 님이 2016년 5월 1일 질문
이ㅡ글님이 2016년 5월 1일 수정

1개의 답변

0 추천

<> 속의 회색은 없어도 알아서 찾아서 사용하기에 그런것 같구요

Service_C.java:292 즉 서비스_씨 에 292번째 줄에서 널이 발생하여 익셉션이 뜬것으로 보임당

 

전체 코드를 본게 아니라 이정도만 유추해볼 수 있네요 제 짧은 지식으로는

익명사용자 님이 2016년 5월 2일 답변
...