1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android asmack调用MultiUserChat.getHostedRooms方法出现空指针的异常解决方案

android asmack调用MultiUserChat.getHostedRooms方法出现空指针的异常解决方案

时间:2020-07-21 01:04:27

相关推荐

android asmack调用MultiUserChat.getHostedRooms方法出现空指针的异常解决方案

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

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

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

问题链接:/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);

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。