안드로이드 FCM 수신시 Not allowed to start service Intent 에러가 납니다..

제목 그대로 FCM 수신할때 에러가 나면서 앱이 팅기네요..

특이사항은 앱이 실행된 상태...즉, 포어그라운드상태에선 문제가 없습니다. 그리고 앱을 끄진않고 바깥에 나와있는 상태에서도 동작이 잘되는데

task를 clean 시키면 위처럼 에러가 납니다.

예를 들면 TaskKiller 같은 앱으로 완전히 종료시킨 후에 FCM을 수신받으면 팅깁니다..

아래는 에러로그입니다. 대충 무슨 뜻인지는 알겠는데 어떻게 처리해야되는질 모르겠습니다..

답변 부탁드립니다..

java.lang.RuntimeException: Unable to start receiver com.google.firebase.iid.FirebaseInstanceIdReceiver: java.lang.IllegalStateException: Not allowed to start service Intent { act=com.google.firebase.MESSAGING_EVENT pkg=com.example.smartcaresystemsms cmp=com.example.smartcaresystemsms/.MyFirebaseMessagingService (has extras) }: app is in background uid UidRecord{9108ca4 u0a665 RCVR idle procs:1 seq(0,0,0)}
        at android.app.ActivityThread.handleReceiver(ActivityThread.java:3397)
        at android.app.ActivityThread.-wrap18(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1780)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6938)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
     Caused by: java.lang.IllegalStateException: Not allowed to start service Intent { act=com.google.firebase.MESSAGING_EVENT pkg=com.example.smartcaresystemsms cmp=com.example.smartcaresystemsms/.MyFirebaseMessagingService (has extras) }: app is in background uid UidRecord{9108ca4 u0a665 RCVR idle procs:1 seq(0,0,0)}
        at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1538)
        at android.app.ContextImpl.startService(ContextImpl.java:1484)
        at android.content.ContextWrapper.startService(ContextWrapper.java:663)
        at android.content.ContextWrapper.startService(ContextWrapper.java:663)
        at android.support.v4.content.WakefulBroadcastReceiver.startWakefulService(WakefulBroadcastReceiver.java:99)
        at com.google.firebase.iid.FirebaseInstanceIdInternalReceiver.zzj(Unknown Source:11)
        at com.google.firebase.iid.FirebaseInstanceIdInternalReceiver.zzb(Unknown Source:72)
        at com.google.firebase.iid.FirebaseInstanceIdReceiver.onReceive(Unknown Source:98)
        at android.app.ActivityThread.handleReceiver(ActivityThread.java:3390)
        at android.app.ActivityThread.-wrap18(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1780) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6938) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 
  • dependencies에서 firebase version이 몇인가요 뉴랜드 2018.7.10 16:30
  • messaging, core 9.0.2 쓰고있어요, google-services 는 4.0.0 입니다 ssangyongttt 2018.7.10 16:32
  • 9.0.2로 쓰시는 이유가 있으신가요? 테스트한 기기의 os 는 오레오인가요? 최신 버전으로 바꿔서 실행해보세요. 뉴랜드 2018.7.10 16:33
  • 최신버전으로 쓰니까 gradle 오류도 나고 제대로 안되는거같아서 다운그레이드 했습니다만...쓰고계시는 버전은 어떻게되세요? 테스트기기는 오레오입니다.. ssangyongttt 2018.7.10 16:36
  • 오레오 버전에서 백그라운드에 대한 제한이 강해져서 발생하는 오류일거에요. 뉴랜드 2018.7.10 16:38
  • 저는 implementation 'com.google.firebase:firebase-core:16.0.1' implementation 'com.google.firebase:firebase-messaging:17.1.0' 이렇게 사용중입니다. 뉴랜드 2018.7.10 16:38
  • 네...강화됐다곤하는데 어찌 처리해야될지 모르겠어요..일단 버전업부터 해봐야겠습니다 감사합니다 ssangyongttt 2018.7.10 16:40
  • 버전업만 하시면 해결될겁니다. 뉴랜드 2018.7.10 16:42
  • wow...감사합니다 바로 해결됐네요..그동안 버전업하면 자꾸 이상한에러나던데 버전 그대로 쓰니 에러도없었어요 성의껏 답변해주셔서 감사합니다 :) ssangyongttt 2018.7.10 16:44
  • 되도록이면 https://firebase.google.com/support/release-notes/android 여기 확인해서 최신 버전으로 사용하세요. 뉴랜드 2018.7.10 16:51

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.