OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your Xamarin app with OneSignal. https://onesignal.com
Description:
Our Xamarin.Forms app seemingly crashes randomly out of nowhere (Only on Android, this doesn't happen in iOS). We were able to pull the below attached stacktrace from AppCenter logs. This started happening after we upgraded to 3.4.0 version of the Xamarin SDK.
Initially, we thought that it was crashing when app is pushed to background and it was being resumed again. But it has begun crashing even more randomly.
We are not using location permission in our app, but from the stacktrace, we can see that the SDK is trying to do something related to location services.
Please look into this and fix this so that the users wont experience random crashes. Thanks!
Environment
version 3.4.0
Added from nuget
Add version 3.4.0 of the Xamarin SDK to your project
Initialize SDK with App Id
Stack trace:
Java.Lang.NullPointerException: Attempt to read from field 'boolean com.onesignal.OneSignal$Builder.mPromptLocation' on a null object reference at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00089] in <286213b9e14c442ba8d8d94cc9dbec8e>:0 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0005d] in <286213b9e14c442ba8d8d94cc9dbec8e>:0 at Android.App.Activity.OnResume () [0x0000a] in <95d915721ad748108ff096dce8f8f32c>:0 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnResume () [0x00000] in <ba0773091df94a579a45d99874fbdec8>:0 at Android.App.Activity.n_OnResume (System.IntPtr jnienv, System.IntPtr native__this) [0x00009] in <95d915721ad748108ff096dce8f8f32c>:0 at (wrapper dynamic-method) System.Object.21(intptr,intptr) at java.lang.NullPointerException: Attempt to read from field 'boolean com.onesignal.OneSignal$Builder.mPromptLocation' on a null object reference at com.onesignal.OneSignal.startLocationUpdate(OneSignal.java:866) at com.onesignal.OneSignal.startRegistrationOrOnSession(OneSignal.java:847) at com.onesignal.OneSignal.doSessionInit(OneSignal.java:762) at com.onesignal.OneSignal.onAppFocus(OneSignal.java:1214) at com.onesignal.ActivityLifecycleHandler.handleFocus(ActivityLifecycleHandler.java:207) at com.onesignal.ActivityLifecycleHandler.onActivityResumed(ActivityLifecycleHandler.java:121) at com.onesignal.ActivityLifecycleListener.onActivityResumed(ActivityLifecycleListener.java:78) at android.app.Application.dispatchActivityResumed(Application.java:240) at android.app.Activity.onResume(Activity.java:1364) at android.support.v4.app.FragmentActivity.onResume(FragmentActivity.java:514) at md51558244f76c53b6aeda52c8a337f2c37.FormsAppCompatActivity.n_onResume(Native Method) at md51558244f76c53b6aeda52c8a337f2c37.FormsAppCompatActivity.onResume(FormsAppCompatActivity.java:112) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1361) at android.app.Activity.performResume(Activity.java:7361) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3765) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3830) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1746) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Description: Our Xamarin.Forms app seemingly crashes randomly out of nowhere (Only on Android, this doesn't happen in iOS). We were able to pull the below attached stacktrace from AppCenter logs. This started happening after we upgraded to 3.4.0 version of the Xamarin SDK.
Also I found that the same stacktrace was found in Onesignal Android SDK issues section https://github.com/OneSignal/OneSignal-Android-SDK/issues/811
Initially, we thought that it was crashing when app is pushed to background and it was being resumed again. But it has begun crashing even more randomly. We are not using location permission in our app, but from the stacktrace, we can see that the SDK is trying to do something related to location services. Please look into this and fix this so that the users wont experience random crashes. Thanks!
Environment version 3.4.0 Added from nuget
Stack trace:
Java.Lang.NullPointerException: Attempt to read from field 'boolean com.onesignal.OneSignal$Builder.mPromptLocation' on a null object reference at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00089] in <286213b9e14c442ba8d8d94cc9dbec8e>:0 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0005d] in <286213b9e14c442ba8d8d94cc9dbec8e>:0 at Android.App.Activity.OnResume () [0x0000a] in <95d915721ad748108ff096dce8f8f32c>:0 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnResume () [0x00000] in <ba0773091df94a579a45d99874fbdec8>:0 at Android.App.Activity.n_OnResume (System.IntPtr jnienv, System.IntPtr native__this) [0x00009] in <95d915721ad748108ff096dce8f8f32c>:0 at (wrapper dynamic-method) System.Object.21(intptr,intptr) at java.lang.NullPointerException: Attempt to read from field 'boolean com.onesignal.OneSignal$Builder.mPromptLocation' on a null object reference at com.onesignal.OneSignal.startLocationUpdate(OneSignal.java:866) at com.onesignal.OneSignal.startRegistrationOrOnSession(OneSignal.java:847) at com.onesignal.OneSignal.doSessionInit(OneSignal.java:762) at com.onesignal.OneSignal.onAppFocus(OneSignal.java:1214) at com.onesignal.ActivityLifecycleHandler.handleFocus(ActivityLifecycleHandler.java:207) at com.onesignal.ActivityLifecycleHandler.onActivityResumed(ActivityLifecycleHandler.java:121) at com.onesignal.ActivityLifecycleListener.onActivityResumed(ActivityLifecycleListener.java:78) at android.app.Application.dispatchActivityResumed(Application.java:240) at android.app.Activity.onResume(Activity.java:1364) at android.support.v4.app.FragmentActivity.onResume(FragmentActivity.java:514) at md51558244f76c53b6aeda52c8a337f2c37.FormsAppCompatActivity.n_onResume(Native Method) at md51558244f76c53b6aeda52c8a337f2c37.FormsAppCompatActivity.onResume(FormsAppCompatActivity.java:112) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1361) at android.app.Activity.performResume(Activity.java:7361) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3765) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3830) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1746) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6944) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)