OneSignal-Android-SDK icon indicating copy to clipboard operation
OneSignal-Android-SDK copied to clipboard

[Bug]: OneSignal 5.1.2 NullPointerException on OneSignal initialization

Open bundleberk opened this issue 1 year ago • 2 comments

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

bundleberk avatar Feb 13 '24 10:02 bundleberk

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.

tikidunpon avatar Feb 13 '24 23:02 tikidunpon

I also had to downgrade the SDK to 4.8.7, waiting for the updates on this one.

bundleberk avatar Feb 14 '24 09:02 bundleberk

Crash information. I hope it will be helpful:

ApplicationService getAppContext

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)

area51bis avatar Feb 26 '24 13:02 area51bis

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.

jkasten2 avatar Mar 01 '24 22:03 jkasten2

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)

Screenshot 2024-07-11 at 11 19 52 Screenshot 2024-07-11 at 11 19 57

mreram avatar Jul 11 '24 09:07 mreram

@mreram we made some additional changes in 5.1.7 to fix some additional null context issues.

jkasten2 avatar Jul 11 '24 17:07 jkasten2