在 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 应用程序中登录聊天的主要内容,如果未能解决你的问题,请参考以下文章