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

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

  • 相关阅读:
    python学习中的bug
    python爬虫工具
    Win系统的快捷键和Macos系统的快捷键
    java基础编程
    linux下的ssh和rynsc
    我为什么要搞无人驾驶
    无人驾驶用到哪些具体技术
    java生成excel,word文件
    java后端实习,从最简单的crud做起
    开发经验和习惯
  • 原文地址:https://www.cnblogs.com/tony-yang-flutter/p/3417901.html
Copyright © 2011-2022 走看看