Не удалось запустить приемник com.parse.ParseBroadcastReceiver в приложении Trigger.io для Android

У меня есть приложение Android, созданное с помощью trigger.io, с помощью оповещений о синтаксическом анализе. Приложение развернуто в Google Play, а push-уведомления работают нормально. Недавно перестроенная и развернутая в Google Play новая версия приложения с платформой Forge версии 1.4.29.

С тех пор я получаю следующие отчеты о сбоях через 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 

Я полностью протестировал приложение на следующих телефонах Android и не смог воспроизвести ошибку самостоятельно.

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

Может ли кто-нибудь предположить, что здесь происходит не так, и как я могу исправить это с помощью Trigger.io?

Эта проблема была исправлена ​​в Forge v1.4.37, которая включала обновление для Parse Android SDK v1.2.3.

  • Выпуски Trigger.io
  • Отчет об ошибках в Parse Q & A

Недавно у меня была эта проблема и не имела никакого отношения к версии Parse. Проблема заключалась в том, что инициализация Parse была выполнена на Activity вместо Application. Широковещательный приемник может запускаться до Activity и писать собственный класс приложения и инициализировать Parse in onCreate.

 public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); //Initialize Parse here } } <application android:name=".MyApplication" ...> . . . </application> 

Эта проблема разрешена в Forge v1.4.32: http://docs.trigger.io/en/v1.4/release-notes.html#v1-4-32