【自己在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