首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >smack 4.1.0 beta3上的smack连接错误

smack 4.1.0 beta3上的smack连接错误
EN

Stack Overflow用户
提问于 2015-03-03 11:36:34
回答 1查看 762关注 0票数 0

我测试了eclipse与Smack 4.1.0 Beta3之间的连接和本地主机中的openfire之间的连接,但得到了一些错误。

代码语言:javascript
复制
XMPPTCPConnectionConfiguration conf =XMPPTCPConnectionConfiguration.builder()
            .setHost("127.0.0.1")
            .setPort(5222)
            .setCompressionEnabled(false)
            .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
            .build();
    XMPPTCPConnection connection = new XMPPTCPConnection(conf);

    try {
        connection.connect();
        connection.login("admin","admin");
    } catch (SmackException | IOException | XMPPException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

当我在android应用程序“模拟器”上运行时,我得到了消息Unfortunately,test_connection has stopped.和LogCat显示。

代码语言:javascript
复制
FATAL EXCEPTION: main 
Process:com.example.test_connection, PID: 1956
java.lang.NoClassDefFoundError: org.jxmpp.util.XmppStringUtils
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-12 06:41:56

你没写过你用的是什么版本的开爆枪。如果是3.9.3,下面的例子应该是有帮助的。祝好运!

Smack版本:smack-4.2.0-alpha1 1-快照Openfire版本: 3.9.3

Smack库:核心、im、java7、sasl提供的tcp

带有附加库的 jxmpp-util-cache-0.4.1.jar,jxmpp 0.4.1.jar,minidns-0.1.jar

请按照下面的代码:

代码语言:javascript
复制
    public class MyConnection implements ConnectionListener {

    ...

    XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
    config.setUsernameAndPassword(userName + "@" + DOMAIN, password);
    config.setServiceName(DOMAIN);
    config.setHost(DOMAIN);
    config.setPort(PORT);
    config.setDebuggerEnabled(true);

    AbstractXMPPConnection mConnection = new XMPPTCPConnection(config.build());
    mConnection.setPacketReplyTimeout(10000);
    mConnection.addConnectionListener(this);

    try {
        mConnection.connect();
    } catch (SmackException | IOException | XMPPException e) {
        e.printStackTrace();
    }


    @Override
    public void connected(XMPPConnection xmppConnection) {
         Log.d(TAG, "connected");

         try {
              mConnection.login();
         } catch (XMPPException | SmackException | IOException e) {
              e.printStackTrace();
         }
    }

必须重写的其他方法:

代码语言:javascript
复制
@Override
public void authenticated(XMPPConnection xmppConnection, boolean b) {
    Log.d(TAG, "authenticated");
}

@Override
public void connectionClosed() {
    Log.d(TAG, "connectionClosed");
}

@Override
public void connectionClosedOnError(Exception e) {
    Log.d(TAG, "connectionClosedOnError" + e.toString());
}

@Override
public void reconnectionSuccessful() {
    Log.d(TAG, "reconnectionSuccessful");
}

@Override
public void reconnectingIn(int i) {
    Log.d(TAG, "reconnectingIn");
}

@Override
public void reconnectionFailed(Exception e) {
    Log.d(TAG, "reconnectionFailed");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28830829

复制
相关文章

相似问题

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