【问题标题】:How to use Smack 4.1 in Android?如何在 Android 中使用 Smack 4.1?
【发布时间】:2015-01-13 22:34:48
【问题描述】:

我正在查看此答案Using your own XMPP server for android chat app (Smack API) 以了解可用的 XMPP API。 Smack 似乎是一个不错的选择。

在 Smack 4.1 之前,必须依赖 aSmack。从 4.1 开始,Smack 将在 Android 上原生运行。我有几个“入门”问题。

问题 1:
如何在 Eclipse 的 Android 项目中包含 Smack 4.1?
https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide 这里的说明似乎是针对 Android Studio 的

问题 2:
Android 的代码会保持不变吗?
我在这里指的是他们的官方文档:https://www.igniterealtime.org/builds/smack/docs/latest/documentation/index.html
我想知道的是,API 的使用在 Android 中是否也会保持不变。

【问题讨论】:

标签: java android eclipse xmpp smack


【解决方案1】:

如何在 Eclipse 的 Android 项目中包含 Smack 4.1?

就像您在 Eclipse Android 项目中包含任何其他 Java 库一样。通过将.jar 文件放在libs/ 目录中,Eclipse 的Android 插件 Android Ant 构建系统将使它们可用于项目类路径并将它们包含在生成的.apk 中。

Smack 4.1 的特点是高度模块化。如果你想在 Android 上使用全功能的 Smack,你需要大约 11 个.jar 文件。现在,您可以使用 gradle 来使用 Android Studio,这种方式包括 Smack,就像添加一样简单

dependencies {
  compile "org.igniterealtime.smack:smack-android:4.1.0-rc1"
  compile "org.igniterealtime.smack:smack-tcp:4.1.0-rc1"
  // optional features
  compile "org.igniterealtime.smack:smack-android-extensions:4.1.0-rc1"
}

而 gradle 将负责解决传递依赖。

但是,Android Studio,确切的说是Android gradle插件,不支持带源附件的下载和调试1。在使用开源库时,这显然是您想要的。

这就是我自己不使用 gradle 插件的原因之一。那时我无法开发 Smack(我也喜欢 Eclipse,但那是另一回事)。

所以我们又回到了使用 Eclipse/Ant 来开发我们的 Android 项目。 Smack 4.1 README 告诉您使用MavenToAndroidAnt Python3 脚本,该脚本将自动下载工件并在更新时删除旧工件。如果你将它挂接到你的构建过程中,它几乎和使用 gradle 一样好而且还支持源附件

当然,您也可以手动添加 11 个 .jar 文件,但谁愿意这样做并在其源存储库中包含二进制文件?

Android 的代码会保持不变吗?

是的,从 Smack 4.1 开始,Smack 就是 Smack。因此,无论您是否使用 Android,您都可以参考相同的 javadoc。请注意,aSmack 也是如此,因为它只是 Smack 到 Android 的一个端口。

1:如果我错了,请纠正我,但我上次尝试是不可能的。在此期间情况可能会好转。

【讨论】:

  • 使用源附件下载和调试。那是什么? :)
  • 基本上:当调试器能够在单步执行时显示库的源代码。
  • @Flow 我设法让它在我的 Android 设备上运行。构建器需要很长时间(~3 秒),但之后很快。
  • @Flow 嗨,添加了三个依赖项,就像您在 gradle 文件中所做的那样,但是在同步之后,我遇到了所有三个依赖项的 Failed to Resolve 错误。怎么办?
  • 嗨,我遇到了 smack 4.1 的问题,请查看stackoverflow.com/questions/30256174/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-31
  • 2015-04-18
  • 1970-01-01
  • 2015-08-04
  • 2016-12-23
  • 2015-10-01
  • 2015-09-07
相关资源
最近更新 更多