Hello everyone
My app has service that startes in background from time to time. When i Start the service i immediately start foreground in this way:
The bad thing is that based on the Crashlytics information some random devices (and android versions) crashes with the following errors:
where the sub _vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv2 is StartTheForeground.
The only "map" i access from that sub is "Starter.MappaEtichette" that should be already initialized...
(I can't reproduce the errors on my devices)
Is there something that i can do for avoiding this kind of crashes?
My app has service that startes in background from time to time. When i Start the service i immediately start foreground in this way:
B4X:
Sub Service_Start (StartingIntent As Intent)
StartTheForeground
<....all instructions here...>
StopTheForeground
End sub
Sub StartTheForeground
If IsPaused(Main) Then
Dim n As Notification
n.Initialize2(n.IMPORTANCE_LOW)
n.Icon = "notifica_generica"
n.Light = False
n.Sound = False
n.Vibrate = False
n.SetInfo2(Starter.MappaEtichette.Get("NotificaDiSistema_check_Titolo"), Starter.MappaEtichette.Get("NotificaDiSistema_check_Testo"), "Visualizza_SpiegazioneNotificaGenerica", Main)
Service.StartForeground(100, n)
End If
End Sub
The bad thing is that based on the Crashlytics information some random devices (and android versions) crashes with the following errors:
B4X:
Fatal Exception: java.lang.RuntimeException: Unable to start service project.me.radar@aba4609 with Intent { cmp=project.me/.radar (has extras) }: java.lang.RuntimeException: java.lang.RuntimeException: Object should first be initialized (Map).
at android.app.ActivityThread.handleServiceArgs + 3744(ActivityThread.java:3744)
at android.app.ActivityThread.-wrap20(Unknown Source)
at android.app.ActivityThread$H.handleMessage + 1880(ActivityThread.java:1880)
at android.os.Handler.dispatchMessage + 106(Handler.java:106)
at android.os.Looper.loop + 166(Looper.java:166)
at android.app.ActivityThread.main + 6861(ActivityThread.java:6861)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 450(RuntimeInit.java:450)
at com.android.internal.os.ZygoteInit.main + 936(ZygoteInit.java:936)
Caused by java.lang.RuntimeException: java.lang.RuntimeException: Object should first be initialized (Map).
at anywheresoftware.b4a.BA.raiseEvent2 + 233(BA.java:233)
at anywheresoftware.b4a.BA.raiseEvent + 176(BA.java:176)
at project.me.radar.handleStart + 100(radar.java:100)
at project.me.radar.access$000 + 8(radar.java:8)
at project.me.radar$1.run + 71(radar.java:71)
at anywheresoftware.b4a.objects.ServiceHelper$StarterHelper.onStartCommand + 235(ServiceHelper.java:235)
at project.me.radar.onStartCommand + 69(radar.java:69)
at android.app.ActivityThread.handleServiceArgs + 3718(ActivityThread.java:3718)
at android.app.ActivityThread.-wrap20(Unknown Source)
at android.app.ActivityThread$H.handleMessage + 1880(ActivityThread.java:1880)
at android.os.Handler.dispatchMessage + 106(Handler.java:106)
at android.os.Looper.loop + 166(Looper.java:166)
at android.app.ActivityThread.main + 6861(ActivityThread.java:6861)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 450(RuntimeInit.java:450)
at com.android.internal.os.ZygoteInit.main + 936(ZygoteInit.java:936)
Caused by java.lang.RuntimeException: Object should first be initialized (Map).
at anywheresoftware.b4a.AbsObjectWrapper.getObject + 50(AbsObjectWrapper.java:50)
at anywheresoftware.b4a.objects.collections.Map.Get + 64(Map.java:64)
at project.me.radar._vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv2 + 346(radar.java:346)
at project.me.radar._service_start + 825(radar.java:825)
at java.lang.reflect.Method.invoke(Method.java)
at anywheresoftware.b4a.BA.raiseEvent2 + 196(BA.java:196)
at anywheresoftware.b4a.BA.raiseEvent + 176(BA.java:176)
at project.me.radar.handleStart + 100(radar.java:100)
at project.me.radar.access$000 + 8(radar.java:8)
at project.me.radar$1.run + 71(radar.java:71)
at anywheresoftware.b4a.objects.ServiceHelper$StarterHelper.onStartCommand + 235(ServiceHelper.java:235)
at project.me.radar.onStartCommand + 69(radar.java:69)
at android.app.ActivityThread.handleServiceArgs + 3718(ActivityThread.java:3718)
at android.app.ActivityThread.-wrap20(Unknown Source)
at android.app.ActivityThread$H.handleMessage + 1880(ActivityThread.java:1880)
at android.os.Handler.dispatchMessage + 106(Handler.java:106)
at android.os.Looper.loop + 166(Looper.java:166)
at android.app.ActivityThread.main + 6861(ActivityThread.java:6861)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 450(RuntimeInit.java:450)
at com.android.internal.os.ZygoteInit.main + 936(ZygoteInit.java:936)
where the sub _vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv2 is StartTheForeground.
The only "map" i access from that sub is "Starter.MappaEtichette" that should be already initialized...
(I can't reproduce the errors on my devices)
Is there something that i can do for avoiding this kind of crashes?