Unable to start receiver com.parse.ParseBroadcastReceiver on Trigger.io Android app

♀尐吖头ヾ 提交于 2019-12-21 05:22:30

问题


I've an Android app built with trigger.io, using Parse push notifications. App is deployed to google play and push notifications have been working fine. Recently re-built and deployed to google play a new version of the app, with Forge platform version 1.4.29.

Since then I have been receiving the following crash reports through Google Play:

java.lang.RuntimeException: Unable to start receiver com.parse.ParseBroadcastReceiver: android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2236)
at android.app.ActivityThread.access$1500(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
at android.app.ReceiverRestrictedContext.registerReceiver(ContextImpl.java:125)
at android.app.ReceiverRestrictedContext.registerReceiver(ContextImpl.java:119)
at com.parse.ParseCommandCache.<init>(ParseCommandCache.java:132)
at com.parse.Parse.getCommandCache(Parse.java:450)
at com.parse.ParseObject.saveEventually(ParseObject.java:1022)
at com.parse.ParseInstallation.saveEventually(ParseInstallation.java:170)
at com.parse.ParsePushRouter.saveEventually(ParsePushRouter.java:92)
at com.parse.ParsePushRouter.ensureStateIsLoaded(ParsePushRouter.java:208)
at com.parse.ParsePushRouter.hasRoutes(ParsePushRouter.java:122)
at com.parse.PushService.startServiceIfRequired(PushService.java:129)
at com.parse.ParseBroadcastReceiver.onReceive(ParseBroadcastReceiver.java:19)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2229)
... 10 more

I have tested the app thoroughly on the following Android handsets and not been able to replicate the bug myself.

  • Samsung Galaxy Nexus
  • Samsung Galaxy S2
  • Samsung Galaxy S

Can someone suggest what is going wrong here and how I can fix it with Trigger.io?


回答1:


This issue was fixed in Forge v1.4.37, which included an update to the Parse Android SDK v1.2.3.

  • Trigger.io release ntes
  • Bug report on Parse Q&A



回答2:


Recently I had this problem and nothing to do with Parse version. Issue was the initializing of Parse was done on Activity instead of Application. The Broadcast Receiver can start before the Activity and writing a custom Application class and initializing Parse in onCreate of that helps.

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //Initialize Parse here
    }
}



<application
        android:name=".MyApplication"
...>
.
.
.
</application>



回答3:


This problem is resolved in Forge v1.4.32: http://docs.trigger.io/en/v1.4/release-notes.html#v1-4-32



来源:https://stackoverflow.com/questions/14811733/unable-to-start-receiver-com-parse-parsebroadcastreceiver-on-trigger-io-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!