Android Smack聊天客户端

时间:2011-10-12 07:53:47

标签: android smack

您好我使用从以下网址下载的Smack3.2.1.jar

http://www.igniterealtime.org/downloads/index.jsp

我将jar添加到我的构建路径但是当我运行应用程序时,我得到以下错误日志

10-12 13:11:59.464: ERROR/AndroidRuntime(1957): FATAL EXCEPTION: main
10-12 13:11:59.464: ERROR/AndroidRuntime(1957): java.lang.VerifyError: org.jivesoftware.smack.sasl.SASLMechanism
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at java.lang.Class.getDeclaredConstructors(Native Method)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at java.lang.Class.getConstructor(Class.java:477)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:314)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at org.jivesoftware.smack.Connection.login(Connection.java:348)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at org.apache.android.xmpp.SettingsDialog.onClick(SettingsDialog.java:54)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at android.view.View.performClick(View.java:2408)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at android.view.View$PerformClick.run(View.java:8816)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at android.os.Handler.handleCallback(Handler.java:587)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at android.os.Looper.loop(Looper.java:123)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at java.lang.reflect.Method.invokeNative(Native Method)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at java.lang.reflect.Method.invoke(Method.java:521)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-12 13:11:59.464: ERROR/AndroidRuntime(1957):     at dalvik.system.NativeStart.main(Native Method)

任何人都可以帮忙......

4 个答案:

答案 0 :(得分:4)

Smack不能在开箱即用的Android上运行,你可能想要使用一个思科(http://code.google.com/p/asmack/),它是Android的一个端口。

答案 1 :(得分:4)

最后我得到了具体实现

任何想要开发聊天客户端的人都会按照下面提到的步骤进行操作。

转到链接

http://www.beem-project.com/projects/beem/files

下载

asmack-android-7-source-beem.zip

现在根据您的要求修改此来源。

你会发现lib asmack-android-7-beem.jar来获取这个lib的javadoc和javadoc for smack一样,我所做的如下。

从以下链接下载源码smack-3.2.1

http://www.igniterealtime.org/downloads/index.jsp

当您解压缩jar时,您将获得名为javadoc的文件夹,现在只需将此文件夹附加到asmack-android-7-beem.jar,方法是转到项目的属性。

Hip Hip Hurray ....

答案 2 :(得分:3)

在Android上无法使用先前的Smack 4 上的vanilla Smack。看看"Android and XMPP: Currently available solutions"

答案 3 :(得分:0)

使用依赖项在build.gradle中注入此内容

 compile 'org.igniterealtime.smack:smack-android:4.1.6'
    compile 'org.igniterealtime.smack:smack-tcp:4.1.6'
    compile 'org.igniterealtime.smack:smack-im:4.1.6'
    compile 'org.igniterealtime.smack:smack-extensions:4.1.6'