【自己在androidStudio上使用smack开发即时通讯app刚开始时遇到一系列问题,最后终于解决,可以连接上openfire服务器并登陆成功,因此总结一下】
由于smack是从4.0之后才支持android平台上的开发使用,所以请使用Smack4.0及以上版本jar包,同时只兼容JVMs 1.7及以上版本。
在Android上开发时要注意的问题:
官网下载的Smack压缩包中有些包含-java7- , -javax- 字眼的jar包是不能在android平台上使用的(web及桌面应用中应该是正常使用的),由于android只是使用了javaAPI的API子集,部分javaAPI无法调用,因此编译时可能会找不到这些相关类而报错。
解决方法:
而smack4.0之后又加入了可以在安卓平台使用的一些jar包来代替含有-java7-,-javax-字眼的一些android不能使用的jar包。
所以导包之前要先修改一下,删除这些不能再android上使用的jar包,并在smack-config.xml(此配置文件位于smack-core-xxx.jar中,列出的类都是在smack使用时会调用的类)中删除对应含-java7-,-javax-字眼的jar包中类的xml配置标签,之后再导入其余jar包到自己的项目中(smack开发时还要使用一些第三方jar包:
jxmpp-core-0.4.2.jar、
jxmpp-jid-0.4.2.jar、
jxmpp-util-cache-0.4.2.jar、
minidns-0.1.7.jar、
org.xbill.dns_2.1.7.jar、
xpp3-1.1.4c.jar,
这些jar包是被smack中定义的一些方法引用到的)到lib中。
之后参考官方文档写代码就行了。
smack官方下载:http://www.igniterealtime.org/projects/smack/
本人修改后的android平台下smack下载:http://download.csdn.net/detail/u013403478/9512800