在QuickBlox for Android应用中登录聊天

时间:2014-10-02 10:02:51

标签: android proguard quickblox

我正在开发一个用于聊天的Android应用程序,我正在使用Quickblox。我正在整合QuickBlox" quickblox-android-1.2.4.jar "我的Android应用程序中的QuickBlox SDK 1.2.4库。我已阅读了thisthis以及QB的许多其他链接教程。代码完全按照我的意愿运行但是当我使用Proguard QBChatService.getInstance()时会出现问题.loginWithUser 不起作用。我的代码是:

QBChatService.getInstance().loginWithUser(user,
                    new SessionCallback() {
                        @Override
                        public void onLoginSuccess() {

                            Log.i("success when login", "success:");

                        }

                        @Override
                        public void onLoginError(String error) {
                            Log.i("Error", "Error: " + error);
                        }
                    });

但它既不会在登录时显示成功也不会错误。不知道为什么?如果我删除Proguard并在我的其他演示应用程序中运行它,则运行完全正常。所以唯一可信的原因可能是Proguard。你可以通过提及我的" proguard-project.txt"中的哪些课程来帮助我解决这个问题。(如果是这样的话)。

我已经在下面提到了类:

#QuickBlox
-keep class org.jivesoftware.smack.initializer.VmArgInitializer { public *; } 
-keep class org.jivesoftware.smack.ReconnectionManager { public *; }
-keep class com.quickblox.module.c.a.c { public *; }
-keep class com.quickblox.module.chat.QBChatService { public *; }
-keep class com.quickblox.module.chat.QBChatService.loginWithUser { public *; }
-keep class com.quickblox.module.chat.listeners.SessionCallback { public *; }
-keep class * extends org.jivesoftware.smack { public *; }

我在登录之前显然编写了 QBAuth.createSession 的代码,并且如前面提到的那样成功here。事实并非如此。

如果我在这里错过了什么,请建议我。 提前致谢。

1 个答案:

答案 0 :(得分:4)

我有类似的问题,我需要将我的proguard配置扩展为以下内容,现在它正在为我工​​作:

-keep class org.jivesoftware.smack.** { public *; }
-keep class org.jivesoftware.smackx.** { public *; }
-keep class com.quickblox.** { public *; }
-keep class * extends org.jivesoftware.smack { public *; }
-keep class * implements org.jivesoftware.smack.debugger.SmackDebugger { public *; }