无法在android中的xmpp服务器中连接
Posted
技术标签:
【中文标题】无法在android中的xmpp服务器中连接【英文标题】:Unable to connect in xmpp server in android 【发布时间】:2014-11-06 07:08:06 【问题描述】:我正在使用 Samck 4.1.0-alpha 库来创建 Xmpp 客户端。我已经创建了有效用户。我正在尝试通过代码发送消息。但得到错误。 代码:
new Runnable()
@Override
public void run()
// TODO Auto-generated method stub
ConnectionConfiguration config = new ConnectionConfiguration("jabb3r.org", 5222, "jabb3r.org");
XMPPConnection connection = new XMPPTCPConnection(config);
try
connection.connect();
connection.login("USERNAME", "PASSWORD");
// Assume we've created a XMPPConnection name "connection"._
ChatManager chatmanager = ChatManager.getInstanceFor(connection);
Chat newChat = chatmanager.createChat("neilneil@jabb3r.org", new MessageListener()
public void processMessage(Chat chat, Message message)
System.out.println("Received message: " + message);
);
try
newChat.sendMessage("Howdy!");
catch (XMPPException e)
System.out.println("Error Delivering block");
// ConnectionException.getFailedAddresses();
catch (SmackException | IOException | XMPPException e)
// TODO Auto-generated catch block
e.printStackTrace();
;
我收到了这个奇怪的错误。 日志:
11-06 06:55:47.913: E/androidRuntime(1604): FATAL EXCEPTION: Thread-115
11-06 06:55:47.913:E/AndroidRuntime(1604):java.lang.NoClassDefFoundError:org.xbill.DNS.ResolverConfig
11-06 06:55:47.913: E/AndroidRuntime(1604): at org.jivesoftware.smack.SmackAndroid$1$1.run(SmackAndroid.java:41)
我找不到调试此错误的资源。
【问题讨论】:
你在项目中添加了 Samck 库 【参考方案1】:https://community.igniterealtime.org/thread/49329
(请务必阅读自述文件,否则将无法正常工作!)
https://github.com/Flowdalic/asmack/blob/master/README.asmack
Smack requires dnsjava for DNS SRV record lookup. You need to add the
dnsjava library to your project's libraries.
http://www.dnsjava.org/download/
【讨论】:
哦,这有点尴尬! 该自述文件适用于 aSmack。对于 Android 上的 Smack 4.1,我实际上建议使用 minidns 而不是 dnsjava。以上是关于无法在android中的xmpp服务器中连接的主要内容,如果未能解决你的问题,请参考以下文章
单独线程中的 XMPP 连接 - 仍然被 Android 操作系统关闭?
无法使用 Smack 4.1 从 Android 连接 apache vysper XMPP 服务器
无法在 windows phone 7.5(vs2010) 上使用 strophe.js 保持与 XMPP 服务器的连接