[Bug]: OneSignal 5.1.2 NullPointerException on OneSignal initialization
What happened?
I'm using OneSignal 5.1.2 on my android project. Some of my users are getting a nullpointerexception crash when initializing onesignal using OneSignal.initWithContext in application's onCreate.
Steps to reproduce?
I was not able to reproduce this myself.
What did you expect to happen?
Seems like SDK's ApplicationService.getAppContext cannot get the context I pass to OneSignal.initWithContext. This should not happen.
OneSignal Android SDK version
Release 5.1.2
Android version
13, 12, 11, 10, 9, 6
Specific Android models
No response
Relevant log output
Caused by java.lang.NullPointerException:
at com.onesignal.core.internal.application.impl.ApplicationService.getAppContext(ApplicationService.kt:40)
at com.onesignal.core.internal.preferences.impl.PreferencesService.getSharedPrefsByName(PreferencesService.kt:234)
at com.onesignal.core.internal.preferences.impl.PreferencesService.get(PreferencesService.kt:134)
at com.onesignal.core.internal.preferences.impl.PreferencesService.getString(PreferencesService.kt:42)
at com.onesignal.common.modeling.ModelStore.load(ModelStore.kt:159)
at com.onesignal.common.modeling.SimpleModelStore.<init>(SimpleModelStore.kt:23)
at com.onesignal.core.internal.config.ConfigModelStore.<init>(ConfigModelStore.kt:8)
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:89)
at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
at com.onesignal.common.services.ServiceProvider.getService$com_onesignal_core(ServiceProvider.kt:39)
at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:199)
at com.onesignal.OneSignal.initWithContext(OneSignal.kt:135)
at com.dwarfplanet.bundle.v5.data.manager.OneSignalManager.init(OneSignalManager.kt:31)
at com.dwarfplanet.bundle.v5.app.BundleApplication.initOneSignal(BundleApplication.kt:514)
at com.dwarfplanet.bundle.v5.app.BundleApplication.onCreate(BundleApplication.kt:63)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1190)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6582)
at android.app.ActivityThread.access$1400(ActivityThread.java:224)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7562)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Code of Conduct
- [X] I agree to follow this project's Code of Conduct
We had the same problem with 5.1.2 and downgraded our SDK to 4.8.6.
II will provide additional context when the crash occurs.
Frequency of Occurrence
About. 0.1% of users (10 in 10,000)
Android version
8〜14
Specific Android models
Occurs on a variety of devices.
Device Status
96% background
Relevant log output
Almost the same comment as above.
Hopefully the problem will be resolved soon.
I also had to downgrade the SDK to 4.8.7, waiting for the updates on this one.
Crash information. I hope it will be helpful:
Fatal Exception: java.lang.RuntimeException: Unable to start receiver com.onesignal.notifications.receivers.FCMBroadcastReceiver: java.lang.reflect.InvocationTargetException
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3325)
at android.app.ActivityThread.-wrap17()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1766)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6754)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828)
Caused by java.lang.reflect.InvocationTargetException:
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:89)
at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
at com.onesignal.common.services.ServiceProvider.getService$com_onesignal_core(ServiceProvider.kt:39)
at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:199)
at com.onesignal.OneSignal.initWithContext(OneSignal.kt:208)
at com.onesignal.notifications.receivers.FCMBroadcastReceiver.onReceive(FCMBroadcastReceiver.kt:26)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3318)
at android.app.ActivityThread.-wrap17()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1766)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6754)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828)
Caused by java.lang.NullPointerException:
at com.onesignal.core.internal.application.impl.ApplicationService.getAppContext(ApplicationService.kt:39)
at com.onesignal.core.internal.preferences.impl.PreferencesService.getSharedPrefsByName(PreferencesService.kt:234)
at com.onesignal.core.internal.preferences.impl.PreferencesService.get(PreferencesService.kt:134)
at com.onesignal.core.internal.preferences.impl.PreferencesService.getString(PreferencesService.kt:42)
at com.onesignal.common.modeling.ModelStore.load(ModelStore.kt:165)
at com.onesignal.common.modeling.SimpleModelStore.<init>(SimpleModelStore.kt:23)
at com.onesignal.core.internal.config.ConfigModelStore.<init>(ConfigModelStore.kt:8)
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at com.onesignal.common.services.ServiceRegistrationReflection.resolve(ServiceRegistration.kt:89)
at com.onesignal.common.services.ServiceProvider.getServiceOrNull(ServiceProvider.kt:79)
at com.onesignal.common.services.ServiceProvider.getService(ServiceProvider.kt:67)
at com.onesignal.common.services.ServiceProvider.getService$com_onesignal_core(ServiceProvider.kt:39)
at com.onesignal.internal.OneSignalImp.initWithContext(OneSignalImp.kt:199)
at com.onesignal.OneSignal.initWithContext(OneSignal.kt:208)
at com.onesignal.notifications.receivers.FCMBroadcastReceiver.onReceive(FCMBroadcastReceiver.kt:26)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3318)
at android.app.ActivityThread.-wrap17()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1766)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6754)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828)
We have a fix that will lower and possibly fix all crashes related to this null Context being thrown from initWithContext issue in the OneSignal-Android-SDK 5.1.6 release.
@bundleberk, @area51bis, @tikidunpon if you continue to seeing this issue after updating to 5.1.6 please let us know the new percentages of crashes the new stack traces.
Still I'm seeing this crash on version 5.1.6
Caused by java.lang.NullPointerException com.onesignal.core.internal.application.impl.ApplicationService.getAppContext (ApplicationService.kt:40)
@mreram we made some additional changes in 5.1.7 to fix some additional null context issues.