zoukankan      html  css  js  c++  java
  • android asmack调用MultiUserChat.getHostedRooms方法出现空指针的异常解决方案

    今天在做即时通讯群聊时,调用MultiUserChat.getHostedRooms(conn, SmackTools.getInstance().conn.getServiceName());方法获取服务列表时总是出现空指针的情况。

    当时出现这个错误的时候感觉是非怪的,因为参数:conn和服务名都不为空。而MultiUserChat.getHostedRooms也不可能为空。但是错误的异常却是空指针,郁闷。

    找了好长时间都没找到到底是什么原因引起的异常,最后在stackoverflow上找到了灵感。

    问题链接:http://stackoverflow.com/questions/10296022/cannot-get-list-of-public-rooms-from-xmpp-server-on-android/11664266#11664266

    以上博客提出了针对此问题的解决方案:

    在初始化XMPPConnection之前初始化ServiceDiscoveryManager类即可

    以下是初始化代码:

    config = new ConnectionConfiguration(server, 5222);
                Class.forName("org.jivesoftware.smackx.ServiceDiscoveryManager", true, SmackTools.class.getClassLoader());
                // 是否启用压缩
    //            config.setCompressionEnabled(true);
                // 是否启用安全认证
                config.setSASLAuthenticationEnabled(false);
    
                config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
                // 是否启用调试
                config.setDebuggerEnabled(false);
                // 创建连接
                conn = new XMPPConnection(config);

    具体为什么这样做我现在还没弄清楚,有哪位朋友弄清楚这个问题,就贴出来分享一下呗。

  • 相关阅读:
    Ubuntu 16.04中VirtualBox 5.1使用U盘/USB设备的方法
    VirtualBox中的虚拟机在Ubuntu 下无法启动之问题解决
    XX-net 部署网络
    Ubuntu 16.04安装Git及GUI客户端
    Ubuntu dns
    rapidjson
    ubuntu14.04 安装 搜狗输入法
    Ubuntu中解决机箱前置耳机没声音
    C++调试帮助
    ubuntu16.04安装virtualbox
  • 原文地址:https://www.cnblogs.com/tony-yang-flutter/p/3417901.html
Copyright © 2011-2022 走看看