首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aSmack + Android : MultiUserChat类;getMembers,getModerators等不能工作?

aSmack + Android : MultiUserChat类;getMembers,getModerators等不能工作?
EN

Stack Overflow用户
提问于 2012-07-11 03:30:03
回答 2查看 3.3K关注 0票数 2

我使用aSmack (安卓的Smack端口)连接到XMPP服务器(Openfire 3.7.1)并与之通信。只要使用MultiUserChat类发送消息,我就可以让多用户聊天正常工作。但是,调用列出房间占有者的任何方法都会失败。相关代码:

代码语言:javascript
复制
setDefaultConnection();
if(connection!=null) {
    mMuc = new MultiUserChat(connection, "hermitage_recycling@conference.jmartinw7");
    try {
        mMuc.join("chester");
        mMuc.getModerators();         //line 71
        ArrayList<Affiliate> dudes = new ArrayList<Affiliate>(mMuc.getMembers());
        Iterator<Affiliate> iter = dudes.iterator();
        while(iter.hasNext()) {
            Affiliate dude = iter.next();
            Log.w(this.getClass().getName(), dude.getNick());
        }
    } catch(XMPPException xmppe) {
        Log.w(this.getClass().getName(), "MUC error: "+xmppe.getMessage());
    }
}

logcat:

代码语言:javascript
复制
07-10 13:38:56.248: ERROR/AndroidRuntime(13003): FATAL EXCEPTION: main
    java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2
    at org.jivesoftware.smackx.muc.MultiUserChat.getOccupants(MultiUserChat.java:1797)
    at org.jivesoftware.smackx.muc.MultiUserChat.getModerators(MultiUserChat.java:1761)
    at org.apache.android.xmpp.XMPPClient$1.onClick(XMPPClient.java:71)
    at android.view.View.performClick(View.java:2532)

是库出了什么问题还是我做错了什么?getOccupants()似乎起作用了。

MultiUserChat示例和javadoc:

http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/

http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/index.html

aSmack:

http://code.google.com/p/asmack/

http://code.google.com/p/asmack/issues/detail?id=72

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 01:52:01

请阅读aSmackREADME并按照有关ProviderManager的说明进行操作。

票数 1
EN

Stack Overflow用户

发布于 2012-07-11 04:04:37

我相信你的问题是由asmack加载smack.providers文件失败引起的,它告诉asmack要加载哪些类。如果你阅读了自述文件,它描述了如何将smack.providers文件加载到一个asmack中(感谢流程)。在开始任何XMPP活动之前,您需要这样做。

尝试使用https://github.com/Flowdalic/asmack,因为您正在使用的版本已有两年未更新。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11420514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档