Android Question java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String ..... on a null object reference

Declan

Well-Known Member
Licensed User
Longtime User
I get the following error when I attempt to install app on Android 14 device.
The app installs and runs fine on Android 11.

The error I receive:
B4X:
Logger connected to:  samsung SM-S918B
--------- beginning of main
*** Service (starter) Create ***
android.intent.action.SEND
** Service (starter) Start **
** Activity (main) Create (first time) **
Call B4XPages.GetManager.LogEvents = True to enable logging B4XPages events.
landinglayout - Main
** Activity (main) Resume **
** Activity (main) Pause event (activity is not paused). **
*** Receiver (firebasemessaging) Receive (first time) ***
b4xmainpage_updatebadge (java line: 1214)
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.ecowatch.isprotector.wobblemenu._removebadge(int)' on a null object reference
    at com.ecowatch.isprotector.b4xmainpage._updatebadge(b4xmainpage.java:1214)
    at com.ecowatch.isprotector.b4xmainpage$ResumableSub_B4XPage_Appear.resume(b4xmainpage.java:233)
    at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:275)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:215)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:201)
    at anywheresoftware.b4a.keywords.Common$15.run(Common.java:1857)
    at android.os.Handler.handleCallback(Handler.java:958)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:230)
    at android.os.Looper.loop(Looper.java:319)
    at android.app.ActivityThread.main(ActivityThread.java:8893)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

The error appear to be here:
B4X:
Sub UpdateDeviceCount
    Dim BadgeNumber As Int = modAVP.DeviceNumber
    WobbleMenu1.RemoveBadge(4)
    pgx5.WobbleMenu1.RemoveBadge(4)
    pgx2.WobbleMenu1.RemoveBadge(4)
    pgx3.WobbleMenu1.RemoveBadge(4)
    pgx4.WobbleMenu1.RemoveBadge(4)
    If BadgeNumber > 0 Then   
        WobbleMenu1.SetBadge(4, BadgeNumber, Colors.White, Colors.Blue)
        pgx5.WobbleMenu1.SetBadge(4, BadgeNumber, Colors.White, Colors.Blue)
        pgx2.WobbleMenu1.SetBadge(4, BadgeNumber, Colors.White, Colors.Blue)
        pgx3.WobbleMenu1.SetBadge(4, BadgeNumber, Colors.White, Colors.Blue)
        pgx4.WobbleMenu1.SetBadge(4, BadgeNumber, Colors.White, Colors.Blue)
    End If
End Sub

which is called from here:
B4X:
Private Sub B4XPage_Appear
    wait for (Starter.CountNotifications) Complete (NotificationsCounted As Boolean)
    wait for (Starter.CountDevices) Complete (DevicesCounted As Boolean)
    wait for (Starter.WeHaveAUser) Complete (UserCounted As Boolean)
    wait for (LoadDevices) Complete (Done As Boolean)
        
    B4XPages.SetTitle(Me, "iS-PROTECTOR")
    ActivePage = "MainPage"
    SetWobbleMenuPosition(WobbleMenu1, 1)
    imgSOS.Visible = True
    
    UpdateBadge
    UpdateDeviceCount
    
    'user is not registered
    If UserCounted = False Then
        'user must register
        NavigateTo("pg3")
        Return
    End If

    'NavigateTo("MainPage")
    WobbleMenu1.SetVisible(True,False)
    
'    #if B4A
'    Sleep(0)
'    B4XPages.GetManager.ActionBar.RunMethod("setDisplayHomeAsUpEnabled", Array(True))
'    Dim bd As BitmapDrawable
'    bd.Initialize(HamburgerIcon)
'    B4XPages.GetManager.ActionBar.RunMethod("setHomeAsUpIndicator", Array(bd))
'    #End If
End Sub

I cannot understand why the app installs on Android 11, but not on Android 14?
 

William Lancee

Well-Known Member
Licensed User
Longtime User
We don't see the remove and set subs but...
Typically, when you remove something you cannot then address it and set it to something else.
You can remove and then insert a new badge, or don't remove and set it to a new value.

I have no idea why it works in Android 11. You must have made other changes.
 
Upvote 0
Top