hi
当我在Android Oreo中发送推送消息时,我收到了一条错误消息。
该游戏适用于所有以前版本的Android Oreo。
它只发生在Android Oreo中。
我在这个论坛上搜索了许多答案。
有人说我必须使用FCM而不是GCM。
但是我无法将我的旧日食项目更改为Android Studio由于许多风险。
我使用gcm.jar库。
请帮助我,并提前感谢!
logcat
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start receiver com.google.android.gcm.GCMBroadcastReceiver: java.lang.IllegalStateException: Not allowed to start service Intent { act=com.google.android.c2dm.intent.RECEIVE flg=0x1000010 pkg=com.example.test cmp=com.example.test/.GCMIntentService (has extras) }: app is in background uid UidRecord{7cd2325 u0a379 RCVR idle change:uncached procs:1 seq(0,0,0)}
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3194)
at android.app.ActivityThread.-wrap17(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1672)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.IllegalStateException: Not allowed to start service Intent { act=com.google.android.c2dm.intent.RECEIVE flg=0x1000010 pkg=com.example.test cmp=com.example.test/.GCMIntentService (has extras) }: app is in background uid UidRecord{7cd2325 u0a379 RCVR idle change:uncached procs:1 seq(0,0,0)}
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1518)
at android.app.ContextImpl.startService(ContextImpl.java:1474)
at android.content.ContextWrapper.startService(ContextWrapper.java:649)
at android.content.ContextWrapper.startService(ContextWrapper.java:649)
at com.google.android.gcm.GCMBaseIntentService.runIntentInService(GCMBaseIntentService.java:282)
at com.google.android.gcm.GCMBroadcastReceiver.onReceive(GCMBroadcastReceiver.java:55)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3187)
从AndroidO。
开始现在,如果针对Android 8.0的应用程序在不允许创建背景服务的情况下尝试使用该方法,则现在将引发IllegalStateException。
默认情况下,这些限制仅适用于针对o的应用程序,但是如果用户对特定应用程序启用这些限制,则应用程序将被视为相同。 有关主题的更多信息,请阅读背景执行限制部分。
来自API 26的OnWords,您将不允许在后台启动或销毁服务。
https://developer.android.com/about/erversions/oreo/background.html
有关更多详细信息,请阅读此处。
API 26中有很多限制,以进行电池优化和一些安全原因。