This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF Mesh Crashes on Android when receiving Mesh Messages via Publish in Vendor Model

When I publish messages to the mesh network via a Vendor Model, after connecting to device and performing a successful vendor command sequence, I start sending publishes of sensor data to the mesh and get a few different crashes.  The stack trace of the first one is as follows:

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.gamechanger.android.gcmonitor, PID: 29713
java.lang.NullPointerException: Attempt to invoke virtual method 'int no.nordicsemi.android.mesh.transport.ProvisionedMeshNode.incrementSequenceNumber()' on a null object reference
at no.nordicsemi.android.mesh.transport.LowerTransportLayer.sendBlockAck(LowerTransportLayer.java:745)
at no.nordicsemi.android.mesh.transport.LowerTransportLayer.handleImmediateBlockAcks(LowerTransportLayer.java:544)
at no.nordicsemi.android.mesh.transport.LowerTransportLayer.parseSegmentedAccessLowerTransportPDU(LowerTransportLayer.java:513)
at no.nordicsemi.android.mesh.transport.NetworkLayer.parseAccessMessage(NetworkLayer.java:319)
at no.nordicsemi.android.mesh.transport.NetworkLayer.parseMeshMessage(NetworkLayer.java:268)
at no.nordicsemi.android.mesh.transport.DefaultNoOperationMessageState.parseMeshPdu(DefaultNoOperationMessageState.java:60)
at no.nordicsemi.android.mesh.transport.BaseMeshMessageHandler.parseMeshPduNotifications(BaseMeshMessageHandler.java:147)
at no.nordicsemi.android.mesh.MeshMessageHandler.parseMeshPduNotifications(MeshMessageHandler.java:61)
at no.nordicsemi.android.mesh.MeshManagerApi.parseNotifications(MeshManagerApi.java:304)
at no.nordicsemi.android.mesh.MeshManagerApi.handleNotifications(MeshManagerApi.java:276)
at com.gamechanger.android.gcmonitor.viewmodels.NrfMeshRepository.onDataReceived(NrfMeshRepository.java:476)
at com.gamechanger.android.gcmonitor.ble.BleMeshManager$1.lambda$initialize$0$BleMeshManager$1(BleMeshManager.java:116)
at com.gamechanger.android.gcmonitor.ble.-$$Lambda$BleMeshManager$1$8MkBenSGVpQpWecQfKpVn56TTv0.onDataReceived(Unknown Source:2)
at no.nordicsemi.android.ble.ValueChangedCallback.notifyValueChanged(ValueChangedCallback.java:123)
at no.nordicsemi.android.ble.BleManager$BleManagerGattCallback.onCharacteristicChangedSafe(BleManager.java:2884)
at no.nordicsemi.android.ble.MainThreadBluetoothGattCallback.lambda$onCharacteristicChanged$4$MainThreadBluetoothGattCallback(MainThreadBluetoothGattCallback.java:135)
at no.nordicsemi.android.ble.-$$Lambda$MainThreadBluetoothGattCallback$R_hGfDgzC1ieM6HXyW_Z9E0hTuU.run(Unknown Source:8)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8167)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
I/Process: Sending signal. PID: 29713 SIG: 9

I have additional logs, it appears to crash in the nordic mesh library.

no.nordicsemi.android.mesh.transport.LowerTransportLayer.sendBlockAck(LowerTransportLayer.java:745)

Let me know if you need further information. I am using an nrf52840 DK and the latest NCS with Zephyr to implement Mesh. 

Related