Android studio MqttAndroidClient.connect()到Raspberry Pi

Android studio MqttAndroidClient.connect()到Raspberry Pi,android-studio,mqtt,Android Studio,Mqtt,我正在尝试在android studio中构建一个应用程序,使mqtt发布到代理,而代理使用的是Raspberry Pi。这是我的主布局的onCreate函数,但是它返回这个错误,我不知道为什么。我可以从命令提示符发布,因此代理没有问题 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.

我正在尝试在android studio中构建一个应用程序,使mqtt发布到代理,而代理使用的是Raspberry Pi。这是我的主布局的onCreate函数,但是它返回这个错误,我不知道为什么。我可以从命令提示符发布,因此代理没有问题

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bureau_klein);

    final String clientId = "Android1";
    final String ip = "192.168.1.198:1883";
    final MqttAndroidClient client = new MqttAndroidClient(this.getApplicationContext(), ip, clientId);

    try {
        IMqttToken token = client.connect();
        token.setActionCallback(new IMqttActionListener() {
            @Override
            public void onSuccess(IMqttToken asyncActionToken) {
                // We are connected
                Log.d("TAG", "onSuccess");
            }

            @Override
            public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
                // Something went wrong e.g. connection timeout or firewall problems
                Log.d("TAG", "onFailure "+ clientId + " " + ip);
                Log.e("MYAPP", "exception", exception);
                Log.e("MYAPP", "exception", asyncActionToken.getException());
            }
        });
    } catch (MqttException e) {
        e.printStackTrace();
    }
错误:

06-14 20:24:36.825 5891-5891/com.david.domotica2 E/MYAPP: exception
java.lang.IllegalArgumentException: 192.168.1.198:1883
  at org.eclipse.paho.client.mqttv3.MqttConnectOptions.validateURI(MqttConnectOptions.java:473)
  at org.eclipse.paho.client.mqttv3.MqttAsyncClient.<init>(MqttAsyncClient.java:273)
  at org.eclipse.paho.android.service.MqttConnection.connect(MqttConnection.java:282)
  at org.eclipse.paho.android.service.MqttService.connect(MqttService.java:323)
  at org.eclipse.paho.android.service.MqttAndroidClient.doConnect(MqttAndroidClient.java:462)
  at org.eclipse.paho.android.service.MqttAndroidClient.access$200(MqttAndroidClient.java:70)
  at org.eclipse.paho.android.service.MqttAndroidClient$MyServiceConnection.onServiceConnected(MqttAndroidClient.java:109)
  at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1685)
  at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1714)
  at android.os.Handler.handleCallback(Handler.java:789)
  at android.os.Handler.dispatchMessage(Handler.java:98)
  at android.os.Looper.loop(Looper.java:164)
  at android.app.ActivityThread.main(ActivityThread.java:6798)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
06-14 20:24:36.825 5891-5891/com.david.domotica2 E/MYAPP: exception
06-14 20:24:36.825 5891-5891/com.david.domotica2 E/MYAPP:exception
java.lang.IllegalArgumentException:192.168.1.198:1883
位于org.eclipse.paho.client.mqttv3.MqttConnectOptions.validateURI(MqttConnectOptions.java:473)
位于org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:273)
位于org.eclipse.paho.android.service.MqttConnection.connect(MqttConnection.java:282)
位于org.eclipse.paho.android.service.MqttService.connect(MqttService.java:323)
位于org.eclipse.paho.android.service.MqttAndroidClient.doConnect(MqttAndroidClient.java:462)
位于org.eclipse.paho.android.service.MqttAndroidClient.access$200(MqttAndroidClient.java:70)
位于org.eclipse.paho.android.service.MqttAndroidClient$MyServiceConnection.onServiceConnected(MqttAndroidClient.java:109)
在android.app.LoadedApk$ServiceDispatcher.doConnected上(LoadedApk.java:1685)
在android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1714)上
位于android.os.Handler.handleCallback(Handler.java:789)
位于android.os.Handler.dispatchMessage(Handler.java:98)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6798)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.Zygote$MethodAndArgsCaller.run上(Zygote.java:240)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
06-14 20:24:36.825 5891-5891/com.david.domotica2 E/MYAPP:exception

作为IP地址传递给
MqttAndroidClient
的内容应该是完整的URI

e、 g.您正在传入
192.168.1.198:1883
,这是一个IP地址和端口,但缺少架构(协议)

在这种情况下,您应该传入
tcp://192.168.1.198:1883