如何在Android中使用Smack 4.1?

Lit*_*ild 25 java eclipse android xmpp smack

我正在寻找这个答案使用您自己的XMPP服务器为Android聊天应用程序(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也是.

Flo*_*low 28

如何在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"
}
Run Code Online (Sandbox Code Playgroud)

和gradle将负责解决传递依赖关系.

但是,Android Studio或准确的Android gradle插件不支持使用源附件进行下载和调试1.在使用开源库时,这是您显然想要的.

这就是我自己不使用gradle插件的原因之一.我当时无法开发Smack(我也喜欢Eclipse,但这是一个不同的故事).

所以我们重新开始使用Eclipse/Ant来安装Android项目.Smack 4.1 README告诉您使用MavenToAndroidAnt Python3脚本,该脚本将自动下载工件并在更新时删除旧工件.如果将它挂钩到构建过程中,它几乎与使用gradle一样好,但也支持源附件.

当然你也可以.jar手动添加11个文件,但是谁想要这样做并在源库中有二进制文件?

Android的代码会保持不变吗?

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

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