如何将 Smack 4.1 包含在 Eclipse 的 Android 项目中?
就像你会在Eclipse Android项目中包含任何其他Java库一样。通过将文件放在目录中,Eclipse的Android插件和Android Ant构建系统将使它们可用于项目类路径,并将它们包含在结果中。.jar
libs/
.apk
Smack 4.1的问题在于,它是高度模块化的。如果你想要一个功能齐全的Smack在Android上,你需要大约11个文件。现在,您可以使用Gradle使用Android Studio,这样包括Smack,就像添加一样简单.jar
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:如果我错了,请纠正我,但上次我尝试是不可能的。与此同时,情况可能会好转。