eclipse / paho.mqtt.android

MQTT Android
Other
2.92k stars 883 forks source link

App crashes on client.disconnect() every time #395

Closed Ryanauger95 closed 4 years ago

Ryanauger95 commented 4 years ago

Please fill out the form below before submitting, thank you!

Android API Version Bug Seen on: 22

Android Version Bug Seen on: 5.1

Description of Bug:

client.disconnect() causes a crash every time.

Console Log output (if available):

client.disconnect()

E/ActivityThread: Service <myapp>.common.notifications.NotificationService has leaked ServiceConnection org.eclipse.paho.android.service.MqttAndroidClient$MyServiceConnection@4dfe296 that was originally bound here
    android.app.ServiceConnectionLeaked: Service <myapp>.common.notifications.NotificationService has leaked ServiceConnection org.eclipse.paho.android.service.MqttAndroidClient$MyServiceConnection@4dfe296 that was originally bound here
        at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1077)
        at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:971)
        at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1791)
        at android.app.ContextImpl.bindService(ContextImpl.java:1774)
        at android.content.ContextWrapper.bindService(ContextWrapper.java:539)
        at org.eclipse.paho.android.service.MqttAndroidClient.connect(MqttAndroidClient.java:425)
        at <myapp>.common.notifications.NotificationService.connect(NotificationService.kt:112)
        at <myapp>.common.notifications.NotificationService.onCreate(NotificationService.kt:49)
        at android.app.ActivityThread.handleCreateService(ActivityThread.java:2781)
        at android.app.ActivityThread.access$1800(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5280)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: <myapp>, PID: 4251
    java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter cause
        at <myapp>.common.notifications.NotificationService.connectionLost(NotificationService.kt)
        at org.eclipse.paho.android.service.MqttAndroidClient.disconnected(MqttAndroidClient.java:1456)
        at org.eclipse.paho.android.service.MqttAndroidClient.onReceive(MqttAndroidClient.java:1393)
        at androidx.localbroadcastmanager.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
        at androidx.localbroadcastmanager.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:121)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5280)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)
Ryanauger95 commented 4 years ago

Fixed by using client.close()