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);

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

  • 相关阅读:
    软件工程第二次作业
    软件工程第一次作业
    软件工程最后一次作业
    软件工程第四次作业
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    《算法笔记》2.2小节——C/C++快速入门->顺序结构
    大数阶乘
    printf("%f ",5)的输出结果为什么是0.000000
  • 原文地址:https://www.cnblogs.com/tony-yang-flutter/p/3417901.html
Copyright © 2011-2022 走看看