Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android应用程序QuickBlox中登录聊天_Android_Proguard_Quickblox - Fatal编程技术网

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

在Android应用程序QuickBlox中登录聊天,android,proguard,quickblox,Android,Proguard,Quickblox,我正在开发一个用于聊天的Android应用程序,我也在使用Quickblox。我正在我的android应用程序中集成QuickBlox SDK 1.2.4的QuickBlox“QuickBlox-android-1.2.4.jar”库。我已经阅读了QB,以及许多其他链接教程。代码完全按照我希望的方式运行,但是当我使用ProguardQBChatService.getInstance()时问题就出现了。loginWithUser不起作用。我的代码是: QBChatService.getInstan

我正在开发一个用于聊天的Android应用程序,我也在使用Quickblox。我正在我的android应用程序中集成QuickBlox SDK 1.2.4的QuickBlox“QuickBlox-android-1.2.4.jar”库。我已经阅读了QB,以及许多其他链接教程。代码完全按照我希望的方式运行,但是当我使用ProguardQBChatService.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编写了代码,并且正如前面提到的那样,它可以成功地工作。所以情况并非如此

如果我遗漏了什么,请告诉我。
提前谢谢

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

您可以参考此[链接][1],您可能会遇到类似的问题。[1] :@AymanMahgoub-不,我这里没有这个问题。我这边没有任何错误。我只是不调用SessionCallback侦听器,因此它既不会在登录时打印成功,也不会在上面的代码中打印错误。但正如我上面所说的,它在一个类似的演示中完全可以正常工作,其中没有使用Proguard。我现在面临着同样的问题,你有什么更新吗?@AymanMahgoub-没有,但我已经在他们的网站上邮寄了它们并生成了票证。让我们看看他们是否提供了相同的解决方案。如果我从他们那里得到任何更新,我会在这里发布。谢谢,我仍在努力解决这个问题,我会随时通知你。非常感谢杰克,你是一个救世主。我已经寻找这个解决方案好几天了!!我真是太感谢你了,伙计!!谢谢杰克和尼莱;)