Java Request.newMeRequest永远不会返回

Java Request.newMeRequest永远不会返回,java,android,facebook,Java,Android,Facebook,我使用Request.newMeRequest通过facebook登录获取用户的电子邮件和姓名,我使用以下代码块 此代码存在于名为SignUp的活动中,用户也可以从MainActivity进行导航 我的问题是,在输入电子邮件和密码并成功授予facebook权限后,应用程序将返回到MainActivity状态,而函数的其余部分将永远不会触发onCompleted部分 private void performFacebookLogin() { Log.d("FACEBOOK", "perfo

我使用Request.newMeRequest通过facebook登录获取用户的电子邮件和姓名,我使用以下代码块

此代码存在于名为SignUp的活动中,用户也可以从MainActivity进行导航

我的问题是,在输入电子邮件和密码并成功授予facebook权限后,应用程序将返回到MainActivity状态,而函数的其余部分将永远不会触发onCompleted部分

private void performFacebookLogin()
{
    Log.d("FACEBOOK", "performFacebookLogin");
    final Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, Arrays.asList("email"));
    Session openActiveSession = Session.openActiveSession(this, true, new Session.StatusCallback()
    {
        @Override
        public void call(Session session, SessionState state, Exception exception)
        {
            Log.d("FACEBOOK", "call");
            if (session.isOpened() && !isFetching)
            {
                Log.d("FACEBOOK", "if (session.isOpened() && !isFetching)");
                isFetching = true;
                session.requestNewReadPermissions(newPermissionsRequest);
                Request getMe = Request.newMeRequest(session, new GraphUserCallback()
                {
                    @Override
                    public void onCompleted(GraphUser user, Response response)
                    {
                        Log.d("FACEBOOK", "onCompleted");
                        if (user != null)
                        {
                            Log.d("FACEBOOK", "user != null");
                            org.json.JSONObject graphResponse = response.getGraphObject().getInnerJSONObject();
                            String email = graphResponse.optString("email");
                            String id = graphResponse.optString("id");
                            String facebookName = user.getUsername();
                            if (email == null || email.length() < 0)
                            {
                                AlertDialog alertDialog = new AlertDialog.Builder(getApplicationContext()).create();
                                alertDialog.setTitle("Facebook Login");
                                alertDialog.setMessage("An email address is required for your account, we could not find an email associated with this Facebook account. Please associate a email with this account.");
                                alertDialog.setButton("Ok",new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int id) {
                                        dialog.cancel();
                                    }
                                });
                                alertDialog.show();

                                return;
                            }
                        }
                    }
                });
                getMe.executeAsync();
            }
            else
            {
                if (!session.isOpened())
                    Log.d("FACEBOOK", "!session.isOpened()");
                else
                    Log.d("FACEBOOK", "isFetching");

            }
        }
    });
}

您是否在注册活动中覆盖onActivityResult方法以调用Session.getActiveSession.onActivityResult?是的,它似乎也从未被调用过,我编辑了我的主要帖子以展示我是如何实现它的。我遇到了同样的问题-您解决过这个问题吗?
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d("FACEBOOK", "onActivityResult");
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}