在 QuickBlox for Android 应用程序中登录聊天

Posted

技术标签:

【中文标题】在 QuickBlox for Android 应用程序中登录聊天【英文标题】:Login for chat in QuickBlox for Android app 【发布时间】:2014-10-02 10:02:51 【问题描述】:

我正在开发一个用于聊天的 android 应用程序,我也在使用 Quickblox。我正在我的 android 应用程序中为 QuickBlox SDK 1.2.4 集成 QuickBlox“quickblox-android-1.2.4.jar”库。看过this、this等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】:

我遇到了类似的问题,我需要将我的 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 *; 

【讨论】:

以上是关于在 QuickBlox for Android 应用程序中登录聊天的主要内容,如果未能解决你的问题,请参考以下文章

究竟如何在 android 中使用 quickblox?

没有收到推送通知,quickblox,android

在 Android 中从 QuickBlox 发送推送通知

Android 上的 Quickblox 视频通话

登录时出现quickblox错误,android

Quickblox - 如何将通知推送到 Android 和 iOS 平台?