我正在开发一个用于聊天的Android应用程序,我正在使用Quickblox。我正在整合QuickBlox" quickblox-android-1.2.4.jar "我的Android应用程序中的QuickBlox SDK 1.2.4库。我已阅读了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。事实并非如此。
如果我在这里错过了什么,请建议我。 提前致谢。
答案 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 *; }