Paho MqttAndroidClient.connect总是失败

Paho MqttAndroidClient.connect总是失败,第1张

概述我想将消息从 android服务发布到本地服务器.这是我的代码的一部分,最简单的形式基于 here的片段. MemoryPersistence memPer;MqttAndroidClient client;@Overridepublic IBinder onBind(Intent intent) { memPer = new MemoryPersistence(); cl 我想将消息从 android服务发布到本地服务器.这是我的代码的一部分,最简单的形式基于 here的片段.
MemoryPersistence memPer;MqttAndroIDClIEnt clIEnt;@OverrIDepublic IBinder onBind(Intent intent) {    memPer = new MemoryPersistence();    clIEnt = new MqttAndroIDClIEnt(this,"tcp://192.168.1.42:1883","clIEntID",memPer);    try {        clIEnt.connect(null,new IMqttActionListener() {            @OverrIDe            public voID onSuccess(IMqttToken mqttToken) {                Log.i("MQTT","ClIEnt connected");                Log.i("MQTT","topics=" + mqttToken.gettopics());                MqttMessage message = new MqttMessage("Hello,I am AndroID Mqtt ClIEnt.".getBytes());                message.setQos(2);                message.setRetained(false);                try {                    clIEnt.publish("messages",message);                    Log.i("MQTT","Message published");                    clIEnt.disconnect();                    Log.i("MQTT","clIEnt disconnected");                } catch (MqttPersistenceException e) {                    // Todo auto-generated catch block                    e.printstacktrace();                } catch (MqttException e) {                    // Todo auto-generated catch block                    e.printstacktrace();                }            }            @OverrIDe            public voID onFailure(IMqttToken arg0,Throwable arg1) {                // Todo auto-generated method stub                Log.i("MQTT","ClIEnt connection Failed: " + arg1.getMessage());            }        });    } catch (MqttException e) {        e.printstacktrace();    }    return mBinder;}

但总是调用onFailure函数,我得到错误:

I/MQTT﹕ ClIEnt connection Failed: cannot start service org.eclipse.paho.androID.service.MqttService

显然由库返回,因为’Listener!= null’,Line 410.使用调试器,它显示’Listener = SensorLoggerService $1 @ 3634′. SensorLoggerService是我的服务.

什么可能出错?非常感谢.

解决方法 对我来说同样的问题,在我的情况下问题是< service>标签位于< application>之外标签.

一开始我有这个:

<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"package="com.mycompany.myapp" >...<service androID:name="org.eclipse.paho.androID.service.MqttService">    </service>...<application    androID:name="com.mycompany.myapp" ... >...</application>

然后我改为:

<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"package="com.mycompany.myapp" >...<application    androID:name="com.mycompany.myapp" ... >...    <service androID:name="org.eclipse.paho.androID.service.MqttService">    </service></application>

一切正常!

您还需要添加INTERNET和ACCESS_NETWORK_STATE权限,否则您将无法连接.

HTH

总结

以上是内存溢出为你收集整理的Paho MqttAndroidClient.connect总是失败全部内容,希望文章能够帮你解决Paho MqttAndroidClient.connect总是失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1137021.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存