接收推送时无法实例化接收器 com.onesignal.GcmBroadcastReceiver

Unable to instantiate receiver com.onesignal.GcmBroadcastReceiver while recieving pushes

尝试从 OneSignal 平台发送推送时,出现以下错误。

E/AndroidRuntime: FATAL EXCEPTION: main
        java.lang.RuntimeException: Unable to instantiate receiver com.onesignal.GcmBroadcastReceiver: java.lang.ClassCastException: android.content.ContextWrapper cannot be cast to android.app.ContextImpl
            at android.app.ActivityThread.handleReceiver(ActivityThread.java:3304)
            at android.app.ActivityThread.-wrap17(Unknown Source:0)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1771)
            at android.os.Handler.dispatchMessage(Handler.java:106)
            at android.os.Looper.loop(Looper.java:164)
            at android.app.ActivityThread.main(ActivityThread.java:6753)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
         Caused by: java.lang.ClassCastException: android.content.ContextWrapper cannot be cast to android.app.ContextImpl
            at android.app.ActivityThread.handleReceiver(ActivityThread.java:3291)
            at android.app.ActivityThread.-wrap17(Unknown Source:0) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1771) 
            at android.os.Handler.dispatchMessage(Handler.java:106) 
            at android.os.Looper.loop(Looper.java:164) 
            at android.app.ActivityThread.main(ActivityThread.java:6753) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

使用 OneSignal 版本 3.9.2。清单有

<service
            android:name="<packageName>.OneSignalNotification"
            android:permission="android.permission.BIND_JOB_SERVICE"
            android:exported="false">
            <intent-filter>
                <action android:name="com.onesignal.NotificationExtender" />
            </intent-filter>
        </service>

并且 OneSignalNotification 扩展了 NotificationExtenderService。

发生此问题是因为应用程序 class LocaleManager.setLocale 是 returning ContextWrapper。将其更改为 return 上下文,此问题已得到修复

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(LocaleManager.setLocale(base));
}