Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在EclipsePAHO';什么是MQTT?_Java_Android_Android Studio_Kotlin - Fatal编程技术网

Java 如何在EclipsePAHO';什么是MQTT?

Java 如何在EclipsePAHO';什么是MQTT?,java,android,android-studio,kotlin,Java,Android,Android Studio,Kotlin,我正在开发一个FOSS推送通知系统,并决定使用MQTT作为一种低带宽网络协议,比UDP等替代协议更可靠。因此,我偶然发现了Eclipse的Paho MQTT(-SN)/IoT库,它有一个。在实现了相当多的核心项目功能(您可以自己为Android Studio下载)之后,我遇到了实现Android客户端断开连接功能的问题。以下是错误: Stacktrace: E/AndroidRuntime: FATAL EXCEPTION: main Process: fish.push.api, PID: 9

我正在开发一个FOSS推送通知系统,并决定使用MQTT作为一种低带宽网络协议,比UDP等替代协议更可靠。因此,我偶然发现了Eclipse的Paho MQTT(-SN)/IoT库,它有一个。在实现了相当多的核心项目功能(您可以自己为Android Studio下载)之后,我遇到了实现Android客户端断开连接功能的问题。以下是错误:

Stacktrace:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: fish.push.api, PID: 9040
java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter throwable
    at fish.push.api.mqtt.ConnectionManager$1.connectionLost(Unknown Source:2)
    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:106)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7656)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
在我看来,这个错误并不是我自己的代码(我在
ConnectionManager.kt
中的东西有一个神秘的
未知源:2
,一些
Timber.d(“…”)
日志语句表明断开连接回调正在成功执行到完成(即,
D/ConnectionManager$disconnect:Disconnected
出现在错误/stacktrace/VM关闭前不久)。stacktrace中的下一行涉及Paho库中的以下代码片段:

MqttAndroidClient.java

    private void disconnected(Bundle data) {
    clientHandle = null; // avoid reuse!
    IMqttToken token = removeMqttToken(data);
    if (token != null) {
        ((MqttTokenAndroid) token).notifyComplete();
    }
    if (callback != null) {
        callback.connectionLost(null);
    }
}
哪个更像我所经历的
NullPointerException
,因为
回调。connectionLost(null)
应该接受一个非null的
可丢弃原因
,但它们直接传入
null
。怎么办