Чат-клиент Android Smack

Привет, друзья, я использую Smack3.2.1.jar, загруженный со следующего URL-адреса.

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)

Кто-нибудь может помочь...


person Ashwin N Bhanushali    schedule 12.10.2011    source источник


Ответы (4)


Smack не работает на Android из коробки, вы можете использовать aSmack (http://code.google.com/p/asmack/), который представляет собой порт smack для Android.

person Fredszaq    schedule 12.10.2011
comment
Привет, Фредзак. Я гуглю 4 дня и не могу найти документы для asamck, а также один пример спуска. Можете ли вы предоставить мне ссылки. - person Ashwin N Bhanushali; 13.10.2011

Наконец-то я получил конкретную реализацию

Любой, кто хочет разработать чат-клиент, выполните шаги, указанные ниже.

Перейти по ссылке

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

Скачать

asmack-android-7-источник-beem.zip

Теперь измените этот источник в соответствии с вашими требованиями.

Вы найдете lib asmack-android-7-beem.jar, чтобы получить javadoc для этой библиотеки, это то же самое, что и javadoc для smack, что я сделал следующим образом.

Загрузите исходный код smack-3.2.1 по ссылке ниже.

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

Когда вы извлечете банку, вы получите папку с именем javadoc, теперь просто прикрепите эту папку к asmack-android-7-beem.jar, перейдя в свойства вашего проекта.

Хип-хип-ура....

person Ashwin N Bhanushali    schedule 13.10.2011
comment
не могли бы вы рассказать об этом немного подробнее, пожалуйста - person haris; 31.10.2012

Вы не можете использовать vanilla Smack до Smack 4 на Android. Взгляните на "Android и XMPP: доступные в настоящее время решения"

person Flow    schedule 12.10.2011
comment
Привет, поток. Я использовал ту же ссылку для разработки приложения, о котором вы упомянули, что оно использует smack lib. Можете ли вы предложить, как мне решить эту проблему? Есть ли какая-либо другая доступная библиотека? - person Ashwin N Bhanushali; 13.10.2011
comment
Извините, это должно означать, что вы не можете использовать ванильный привкус. Я предлагаю поискать в Google различные приложения с открытым исходным кодом, которые уже используют xmpp на Android, и узнать у них, как использовать asmack на Android. Поиск по xmpp на андроид маркете может быть хорошим началом. - person Flow; 13.10.2011
comment
Я также обновил свой ответ - person Flow; 13.10.2011

используйте зависимости, введите это в свой 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'
person firasovich    schedule 29.02.2016