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

标签 android proguard quickblox

我正在开发一个用于聊天的 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 .所以事实并非如此。

如果我在这里遗漏了什么,请给我建议。 提前致谢。

最佳答案

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

关于android - 在 QuickBlox for Android 应用程序中登录聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26158541/

相关文章:

android - 来自不同表的联合列值

java - 如何保存微调器数据和选定的单选按钮保存到 mysql 数据库?

kotlin - 如何使用 Kotlin JVM(不是 android)和 Gradle 设置 Proguard

android - 在 Android 上使用 XMPP 实现聊天应用程序的更好方法?

QuickBlox : Already logged in Error after Logout

android - 样式化 Android ProgressDialog

java - 如何在将整个输入作为字符串的计算器中计算百分比?

android - Proguard 是否缩小了我的常量?

android - 使用 Proguard 混淆后出现 SuperNotCalledException

ios - QuickBlox:架构 arm64 的 undefined symbol