android - 如果使用 FaceBook Lite,使用 Facebook 登录会使应用程序崩溃

标签 android facebook facebook-login android-facebook

在我的应用程序中,我使用 facebook SDK 来执行登录和注册方法。

当我在我的设备上安装一般的 Facebook 应用程序或使用普通的网络浏览器时,这没问题。

但是当我的设备上有 FaceBook Lite 而我没有一般的 FaceBook 应用程序时,当我尝试使用 facebook-sdk 登录/注册时该应用程序只是在没有任何日志/消息的情况下关闭,所以我不知道为什么会发生这个问题。

我该如何解决这个问题? - 我可以跳过 FaceBook Lite 应用并改用浏览器吗?

更新:

Here is a video if I have normal facebook app, no problems.

Here is a video if I have the face book app lite on my device, which make it crash.

我的代码 fragment :

LoginManager.getInstance()
                    .logInWithReadPermissions(getActivity(), Arrays.asList("public_profile"));

            LoginManager.getInstance()
                    .registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                        @Override
                        public void onSuccess(final LoginResult loginResult) {
                            Log.i("MainActivity", "@@@onSuccess");
                            GraphRequest request = GraphRequest
                                    .newMeRequest(loginResult.getAccessToken(),
                                            (object, response) -> {
                                                Log.i("MainActivity",
                                                        "@@@response: " + response.toString());

                                                try {

                                                    ///
                                                } catch (JSONException e) {
                                                    ////

                                                }
                                            });

                        }

                        @Override
                        public void onCancel() {
                            Log.i("MainActivity", "@@@onCancel");
                        }

                        @Override
                        public void onError(FacebookException error) {
                            Log.i("MainActivity", "@@@onError: " + error.getMessage());
                        }

                    });

最佳答案

您知道 FB 的座右铭 - 快速行动并打破常规。 SDK 与 native 应用程序的集成是有时会中断的事情之一。

您可以强制 Facebook SDK 使用网页登录:

LoginManager.getInstance().setLoginBehavior(LoginBehavior.WEB_ONLY)

关于android - 如果使用 FaceBook Lite,使用 Facebook 登录会使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51449028/

相关文章:

android - 使用CursorLoader查询目录

android - 复制图像,丢失 Exif 数据

android - 封闭alpha测试轨道如何区分两个测试轨道?

ios - IOS 应用程序中的 Facebook 登录对象不能为 nil

PHP 5.4 和 Facebook Hiphop 兼容性

android - 管理android应用程序中的多个 Activity

java - Facebook 登录按钮适用于我的帐户,但不适用于我 friend 的帐户

ruby-on-rails - 如何合并来自多个社交登录的相同用户数据。

ios - FBSDKLoginManager logInWithReadPermissions : fromViewController: handler: completion not called on app first run

java - 处理 OAuth2 回调时出现异常 (null)。 Spring Social Facebook 登录