【问题标题】:How to implement XMPP chat in an android app?如何在 Android 应用中实现 XMPP 聊天?
【发布时间】: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 文件夹中并清理你的项目然后尝试。
  • 我试过了,但没用

标签: java android xmpp openfire smack


【解决方案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 项目中得到修复。构建脚本将在它们丢失时创建它们。

【讨论】:

    猜你喜欢
    • 2018-04-07
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2013-09-27
    相关资源
    最近更新 更多