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

GCM Receiver의 패키지 경로가 app과 다른 경우에..

0 추천

gcm receiver 클래스를 jar로 묶어서 라이브러리에 등록하여 사용 중입니다.

receiver의 패키지가 com.mydomain.gcmLib이고

개발 중인 app의 패키지가 com.myappdomain.appName 인 경우..

Manifest의 receiver 설정 중 패키지 부분을 어떻게 해야 하는지요..

        <receiver
            android:name="com.myappdomain.appName.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
 
                <category android:name="com.myappdomain.appName" />
            </intent-filter>
        </receiver>
 
이렇게 하니 어플 실행은 되는데 push 발신하면, 폰에서 어플에 오류 있다고 강제 종료 되네요..
 
receiver 클래스 자체를 못 찾은건지..
 
이클립스에서 디버깅 해 보면 로그캣에 classNotFound가 뜨긴 하던데..
recevier 클래스 package나 category를 바꿔가면서 해 봐도 해결이 안 되네요.
 
jar로 묶어서 쓰지 않고 동일 패키지에 클래스를 두고 테스트하면 잘 됩니다.
MC02 님이 2015년 1월 29일 질문
2015년 1월 29일 수정

1개의 답변

0 추천
<receiver 태그를 사용하기 때문에 package명은 Receiver class가 속해있는 package명을 입력해 주어야 합니다.

 

android:name="com.myappdomain.appName.GcmBroadcastReceiver"

이 부분을 com.mydomain.gcmLib.GcmBroadcastReceiver 로변경해 보세요
chalsman (1,970 포인트) 님이 2015년 1월 29일 답변
수정하니까 Exception은 발생하지 않는데...
push 메세지 수신을 안 하네요..
로그캣에도 아무런 로그가 안 뜨고....
jar라서 breakpoint 설정도 못 하고...ㅠㅠ

다른 설정들이 더 필요한걸런지요...?
블로그들 뒤적거려서 만들어보고, 거기서 관련 클래스들만 export해서 쓰면 쉽게 될줄 알았는데...;;;
...