如何在 Android 应用中实现 XMPP 聊天?

Posted

技术标签:

【中文标题】如何在 Android 应用中实现 XMPP 聊天?【英文标题】:How to implement XMPP chat in an android app? 【发布时间】:2014-05-07 02:33:27 【问题描述】:

我尝试使用 Smack 库,但我得到的只是:

05-07 04:28:43.299    2958-2958/g.d.allinonechat E/dalvikvm﹕ Could not find class 'javax.naming.directory.InitialDirContext', referenced from method org.jivesoftware.smack.util.dns.JavaxResolver.<clinit>

在 Google 上搜索后我发现,Google 不允许某些 JRE 类在 android 上运行,所以..这里无事可做

试过aSmack,我用的是windows,试过在Linux Ubuntu上编译,但编译不出来

./build.bash line 142 /root/Desktop/asmack-master/version-tags/4.0.0-rc2-SNAPSHOT-2014-04-27.tag: No such file or directory

该文件不存在,但我尝试下载两次压缩文件,它不存在,也不是动态生成的。

还有其他库可以用来连接我的 Openfire 服务器吗?

谢谢。

【问题讨论】:

将你的 asmack 库放在 libs 文件夹中并清理你的项目然后尝试。 我试过了,但没用 【参考方案1】:

关于你自己构建的 aSmack;我在构建脚本时遇到了完全相同的问题。

我发现目录 releasesversion-tags 丢失了。在您的配置中,我建议执行:

mkdir -p /root/Desktop/asmack-master/version-tags/
mkdir -p /root/Desktop/asmack-master/releases/
cd /root/Desktop/asmack-master/build.bash
./build.bash

也不要忘记为ant 创建local.properties 文件以构建最终的jar

cp /root/Desktop/asmack-master/local.properties.example,

需要在local.properties中设置Android-SDK的路径。在我的环境中是这样的:

sdk-location=$user.home/android-sdk-linux/

然后你可以在releases目录中找到最终的jars。

另一种选择是使用已经预先构建的jars 的 aSmack http://asmack.freakempire.de/ 作为aSmack GitHub page suggests。

编辑:不存在目录的问题刚刚在 aSmack 项目中得到修复。构建脚本将在它们丢失时创建它们。

【讨论】:

以上是关于如何在 Android 应用中实现 XMPP 聊天?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XMPP 框架在 iphone 中实现实时聊天? [关闭]

如何在 iOS 应用中实现 webRTC

如何在 iPhone 应用中实现谷歌聊天

如何使用 jabber net 在 c# Windows 应用程序中实现文件传输

xmpp facebook不发送消息

在 iPad App 中实现多用户聊天