paho.mqtt.android
paho.mqtt.android copied to clipboard
no NetworkModule installed for scheme "mqtt" of URI "mqtt://..."
Please fill out the form below before submitting, thank
- [x] Bug exists Release Version 1.1.1 (Java Repository Master Branch)
- [x] Bug exists in Snapshot Version 1.1.2-SNAPSHOT (Android Service Repository Master Branch)
- [ ] Bug is just in the Sample Application.
Android API Version Bug Seen on: Android API Version 28 (Android 9.0) (Tested on emulator device. i.e. Nexus 5 With Provided Google Play Feature)
Android Version Bug Seen on: Android Pie
Please also check that if you have found the bug in the Release version (1.1.1) that you check that it also exists in the Snapshot (1.1.2-SNAPSHOT) before raising a bug.
Description of Bug:
Steps to re-create
-
init MQTT Client.
MqttAndroidClient mqttAndroidClient = new MqttAndroidClient(this, "mqtt://test.mosquitto.org:1883", MqttClient.generateClientId());
-
Connect to the initiated client.
try {
IMqttToken iMqttToken = mqttAndroidClient.connect();
iMqttToken.setActionCallback(this);
} catch (MqttException e) {
e.printStackTrace();
}
- That's it. I am facing error in below callback method.
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
exception.printStackTrace();
}
printStackTrace already shown as below.
Console Log output (if available):
2020-09-28 15:01:54.019 26720-26720/org.oves.mqttdemo W/System.err: java.lang.IllegalArgumentException: no NetworkModule installed for scheme "mqtt" of URI "mqtt://test.mosquitto.org:1883"
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.client.mqttv3.internal.NetworkModuleService.validateURI(NetworkModuleService.java:74)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.client.mqttv3.MqttAsyncClient.<init>(MqttAsyncClient.java:574)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.client.mqttv3.MqttAsyncClient.<init>(MqttAsyncClient.java:438)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.client.mqttv3.MqttAsyncClient.<init>(MqttAsyncClient.java:322)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.android.service.MqttConnection.connect(MqttConnection.java:289)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.android.service.MqttService.connect(MqttService.java:329)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.android.service.MqttAndroidClient.doConnect(MqttAndroidClient.java:467)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.android.service.MqttAndroidClient.access$200(MqttAndroidClient.java:76)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at org.eclipse.paho.android.service.MqttAndroidClient$MyServiceConnection.onServiceConnected(MqttAndroidClient.java:115)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1730)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1762)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at android.os.Handler.handleCallback(Handler.java:873)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
2020-09-28 15:01:54.020 26720-26720/org.oves.mqttdemo W/System.err: at android.os.Looper.loop(Looper.java:193)
2020-09-28 15:01:54.021 26720-26720/org.oves.mqttdemo W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6669)
2020-09-28 15:01:54.021 26720-26720/org.oves.mqttdemo W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2020-09-28 15:01:54.021 26720-26720/org.oves.mqttdemo W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
2020-09-28 15:01:54.021 26720-26720/org.oves.mqttdemo W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Setup or Configuration of Library
- Inside application module
build.gradle
file.
repositories {
maven {
url "https://repo.eclipse.org/content/repositories/paho-releases/"
}
}
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
- Inside
AndroidManifest.xml
file.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application>
<service android:name="org.eclipse.paho.android.service.MqttService" />
</application>
Although, it's simple to reproduce the issue, please let me know if you need my help to reproduce it.
Has the problem been solved?
You can do like this: Inside proguard.cfg file,add this -keep class org.eclipse.paho.client.mqttv3.internal.* { ; } -keep class org.eclipse.paho.client.mqttv3.spi. { *; }
Good luck!
Connect to EMQ, please replace mqtt
to tcp
, like this:MqttAndroidClient mqttAndroidClient = new MqttAndroidClient(this, "tcp://test.mosquitto.org:1883", MqttClient.generateClientId());
Only 5 protocol supported: tcp/ssl/local/ws/wss
Connect to EMQ, please replace
mqtt
totcp
, like this:MqttAndroidClient mqttAndroidClient = new MqttAndroidClient(this, "tcp://test.mosquitto.org:1883", MqttClient.generateClientId());
Only 5 protocol supported: tcp/ssl/local/ws/wss
and replase 'mqtts' to 'ssl' ??