Java 如何在Android中使用Smack 4.1?
我查看这个答案是为了了解可用的XMPP API。Smack似乎是个不错的选择 在Smack 4.1之前,必须依赖aSmack。从4.1开始,Smack将在Android上本机运行。我有几个“入门”问题 问题1:Java 如何在Android中使用Smack 4.1?,java,android,eclipse,xmpp,smack,Java,Android,Eclipse,Xmpp,Smack,我查看这个答案是为了了解可用的XMPP API。Smack似乎是个不错的选择 在Smack 4.1之前,必须依赖aSmack。从4.1开始,Smack将在Android上本机运行。我有几个“入门”问题 问题1: 我如何在Eclipse的Android项目中包含Smack 4.1? 这里的说明似乎是针对Android Studio的 问题2: Android的代码会保持不变吗? 我在这里指的是他们的官方文件: 我想知道的是,API在Android中的使用是否也会保持不变 如何在Eclipse中的A
我如何在Eclipse的Android项目中包含Smack 4.1?
这里的说明似乎是针对Android Studio的 问题2:
Android的代码会保持不变吗?
我在这里指的是他们的官方文件:
我想知道的是,API在Android中的使用是否也会保持不变 如何在Eclipse中的Android项目中包含Smack 4.1 就像在EclipseAndroid项目中包含任何其他Java库一样。通过将
.jar
文件放在libs/
目录中,Eclipse的Android插件和Android Ant build系统将使它们可用于项目类路径,并将它们包含在生成的.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,但那是另一回事)
因此,我们重新开始为我们的Android项目使用Eclipse/Ant。Smack 4.1自述文件告诉您使用该脚本,该脚本将自动下载工件并在更新时删除旧工件。如果将它挂接到构建过程中,它几乎与使用gradle一样好,但也支持源附件
当然,您也可以手动添加11.jar
文件,但谁愿意这样做,并在源代码存储库中拥有二进制文件呢
Android的代码会保持不变吗
是的,从Smack 4.1开始,Smack就是Smack。因此,无论您是否使用Android,都可以引用相同的javadoc。注意,aSmack也是如此,因为它只是Android的一个Smack端口
1:如果我错了,请纠正我,但上次我试过了,这是不可能的。同时情况可能会有所好转。看看@Naveentamakar我不知道这与我的问题有什么关系。@Naveentamakar这些是不同的库,如果我没记错的话,它们都使用过时的(a)Smack库。一个甚至是2008年(6岁!)。下载并调试源附件。那是什么?:)基本上:当调试器能够在单步执行时显示库的源代码时。@Flow我设法使它在我的Android设备上工作。构建器需要很长时间(~3秒),但之后速度很快。@Flow Hi,添加了三个依赖项,就像您在gradle文件中所做的那样,但在同步之后,我无法解决所有三个依赖项的错误。怎么办?嗨,我正面临smack 4.1的问题,请看一看