Widget problem (Appication Stopped)

Johnmcenroy

Active Member
Licensed User
Longtime User
I have an application with widget.
Sometimes , not always there is an error :

** Service (widgetservice) Create **
** Service (widgetservice) Start **
widgetservice_btnstopw_click (B4A line: 31)
If Main.MediaPlayer1.IsPlaying = True Then
java.lang.NullPointerException
at anywheresoftware.b4a.objects.MediaPlayerWrapper.IsPlaying(MediaPlayerWrapper.java:140)
at christmas.carols.widgetservice._btnstopw_click(widgetservice.java:142)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.raiseEventWithDebuggingSupport(RemoteViewsWrapper.java:137)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.HandleWidgetEvents(RemoteViewsWrapper.java:114)
at christmas.carols.widgetservice._service_start(widgetservice.java:265)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at christmas.carols.widgetservice.handleStart(widgetservice.java:61)
at christmas.carols.widgetservice.onStartCommand(widgetservice.java:46)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2379)
at android.app.ActivityThread.access$1900(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1221)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
widgetservice_service_start (B4A line: 31)
If Main.MediaPlayer1.IsPlaying = True Then
java.lang.RuntimeException: java.lang.NullPointerException
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.raiseEventWithDebuggingSupport(RemoteViewsWrapper.java:137)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.HandleWidgetEvents(RemoteViewsWrapper.java:114)
at christmas.carols.widgetservice._service_start(widgetservice.java:265)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at christmas.carols.widgetservice.handleStart(widgetservice.java:61)
at christmas.carols.widgetservice.onStartCommand(widgetservice.java:46)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2379)
at android.app.ActivityThread.access$1900(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1221)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at anywheresoftware.b4a.objects.MediaPlayerWrapper.IsPlaying(MediaPlayerWrapper.java:140)
at christmas.carols.widgetservice._btnstopw_click(widgetservice.java:142)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
... 21 more
java.lang.RuntimeException: Unable to start service christmas.carols.widgetservice@2bba06a8 with Intent { flg=0x10000000 cmp=christmas.carols/.widgetservice bnds=[20,255][100,295] (has extras) }: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NullPointerException
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2396)
at android.app.ActivityThread.access$1900(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1221)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NullPointerException
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at christmas.carols.widgetservice.handleStart(widgetservice.java:61)
at christmas.carols.widgetservice.onStartCommand(widgetservice.java:46)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2379)
... 10 more
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.raiseEventWithDebuggingSupport(RemoteViewsWrapper.java:137)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.HandleWidgetEvents(RemoteViewsWrapper.java:114)
at christmas.carols.widgetservice._service_start(widgetservice.java:265)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
... 14 more
Caused by: java.lang.NullPointerException
at anywheresoftware.b4a.objects.MediaPlayerWrapper.IsPlaying(MediaPlayerWrapper.java:140)
at christmas.carols.widgetservice._btnstopw_click(widgetservice.java:142)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
... 21 more
** Service (widgetservice) Create **
** Service (widgetservice) Start **
widgetservice_btnstopw_click (B4A line: 31)
If Main.MediaPlayer1.IsPlaying = True Then
java.lang.NullPointerException
at anywheresoftware.b4a.objects.MediaPlayerWrapper.IsPlaying(MediaPlayerWrapper.java:140)
at christmas.carols.widgetservice._btnstopw_click(widgetservice.java:142)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.raiseEventWithDebuggingSupport(RemoteViewsWrapper.java:137)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.HandleWidgetEvents(RemoteViewsWrapper.java:114)
at christmas.carols.widgetservice._service_start(widgetservice.java:265)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at christmas.carols.widgetservice.handleStart(widgetservice.java:61)
at christmas.carols.widgetservice.onStartCommand(widgetservice.java:46)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2379)
at android.app.ActivityThread.access$1900(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1221)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
widgetservice_service_start (B4A line: 31)
If Main.MediaPlayer1.IsPlaying = True Then
java.lang.RuntimeException: java.lang.NullPointerException
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.raiseEventWithDebuggingSupport(RemoteViewsWrapper.java:137)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.HandleWidgetEvents(RemoteViewsWrapper.java:114)
at christmas.carols.widgetservice._service_start(widgetservice.java:265)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at christmas.carols.widgetservice.handleStart(widgetservice.java:61)
at christmas.carols.widgetservice.onStartCommand(widgetservice.java:46)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2379)
at android.app.ActivityThread.access$1900(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1221)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at anywheresoftware.b4a.objects.MediaPlayerWrapper.IsPlaying(MediaPlayerWrapper.java:140)
at christmas.carols.widgetservice._btnstopw_click(widgetservice.java:142)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
... 21 more
java.lang.RuntimeException: Unable to start service christmas.carols.widgetservice@2bba59b0 with Intent { flg=0x10000000 cmp=christmas.carols/.widgetservice bnds=[20,255][100,295] (has extras) }: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NullPointerException
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2396)
at android.app.ActivityThread.access$1900(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1221)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NullPointerException
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at christmas.carols.widgetservice.handleStart(widgetservice.java:61)
at christmas.carols.widgetservice.onStartCommand(widgetservice.java:46)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2379)
... 10 more
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:191)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:149)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.raiseEventWithDebuggingSupport(RemoteViewsWrapper.java:137)
at anywheresoftware.b4a.objects.RemoteViewsWrapper.HandleWidgetEvents(RemoteViewsWrapper.java:114)
at christmas.carols.widgetservice._service_start(widgetservice.java:265)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
... 14 more
Caused by: java.lang.NullPointerException
at anywheresoftware.b4a.objects.MediaPlayerWrapper.IsPlaying(MediaPlayerWrapper.java:140)
at christmas.carols.widgetservice._btnstopw_click(widgetservice.java:142)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:165)
... 21 more

If i will start application manually (Main) then widget works again. No errors.
This happens always when i close application by long tap on home button and then clean ram.

I have the following code in my widget:
B4X:
Sub btnStopW_Click
    If Main.MediaPlayer1.IsPlaying = True Then
     Main.MediaPlayer1.Stop
   End If
End Sub

Sub btnPlayW_Click
    If Main.CarolName <> "" Then
      Main.MediaPlayer1.Load(File.DirAssets,Main.CarolName & ".mid")
     Main.MediaPlayer1.Play
   End If
End Sub
How I understand Main.MediPlayer1 and Main.CarolName are cleaned so this happens.

How it can be solved ? Thanks
 
Last edited:

Johnmcenroy

Active Member
Licensed User
Longtime User
Thanks Erel . But i don't understand - i need MediaPlayer1 also in my main application but the service starts only with my widget. I read about services but i don't understand. Also can i check is my Main activity running or not ? I ask because a have a following code:

B4X:
Sub btnStopW_Click
   If IsPaused(Main) = True Then
     rv.SetText ("lblW",IsPaused(Main))
     rv.UpdateWidget
     If Main.MediaPlayer1.IsPlaying = True Then
      Main.MediaPlayer1.Stop
    End If
   End If
End Sub

And the same error - Application Stopped but i checked if Main is running , how it can go next to Main.Mediaplayer1 ?
How i understood isPaused give TRUE if paused or not yet running
But I need TRUE only if paused but process MAIN exists and FALSE if process MAIN doesn't exists , can it be done ?

P.S. Sorry for so many questions :)
 
Last edited:
Upvote 0

Johnmcenroy

Active Member
Licensed User
Longtime User
My application code:
B4X:
'Activity module
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.
End Sub

Sub Globals
   Dim btnPlay As Button
   Dim btnStop As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout ("1.bal")
   StartService(WidgetService)
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub btnStop_Click
   WidgetService.MediaPlayer1.Stop
End Sub

Sub btnPlay_Click
   WidgetService.MediaPlayer1.Load(File.DirAssets,"Joy.mid")
   WidgetService.MediaPlayer1.Play
End Sub

My widget code:
B4X:
'Service module
Sub Process_Globals
   Dim rv As RemoteViews
   Dim MediaPlayer1 As MediaPlayer
End Sub

Sub Service_Create
   rv = ConfigureHomeWidget("2", "rv", 0, "Widget TEST", True)
End Sub

Sub Service_Start (StartingIntent As Intent)
    MediaPlayer1.Initialize()
   If rv.HandleWidgetEvents(StartingIntent) Then Return
End Sub

Sub rv_RequestUpdate
    rv.UpdateWidget
End Sub

Sub rv_Disabled
   StopService("")
End Sub

Sub Service_Destroy

End Sub

Sub btnStopW_Click
     If MediaPlayer1.IsPlaying = True Then
      MediaPlayer1.Stop
    End If
End Sub

Something i do wrong. Stop button in widget doesn't work. I made how you said - MediaPlayer1 in Service , before this it was in Main Activity.
 
Upvote 0
Top