FacebookSDK Request.newMeRequest onCompleted 调用了 JELLYBEAN 但没有调用 KITKAT 或 LOLLIPOP

FacebookSDK Request.newMeRequest onCompleted called on JELLYBEAN but not KITKAT or LOLLIPOP

此代码导致 onCompleted 方法在 Samsung JELLYBEAN 上被调用,但在 Motorola KITKAT 或 LG LOLLIPOP 设备上没有被调用。所有设备上的日志 returns: W/Facebook test(20699): Facebook session status changed - OPENED - Exception: null

private class SessionStatusCallback implements Session.StatusCallback {
    @Override
    public void call(Session session, SessionState state, Exception exception) {
        String message = "Facebook session status changed - "
                + session.getState() + " - Exception: " + exception;                     
        Log.w("Facebook test", message);
        if (session.isOpened()) {
            Request.newMeRequest(session, new Request.GraphUserCallback() {
                @Override
                public void onCompleted(GraphUser user, Response response) {
                    Log.d("onCompleted",""); 
                }
            }).executeAsync();
        } 
    }
}

我已经检查了权限和存储的哈希值。这是我的 onActivityResult 方法:

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
  }

更新: 我用与问题应用相同的代码创建了一个测试项目。该项目没有问题,这表明它不是 java 问题。清单与 Facebook 相同。我在每种情况下都有正确的 app_id 。 developers.facebook.com 上的应用程序设置相同,除了包名称、class 名称和密钥哈希。

  • 前往 developers.facebook.com
  • Select 你的应用
  • Select 状态和审核
  • 更改“是否要制作此应用及其所有实时功能 一般 public 可用吗?”到 NO (我此时等了大概十分钟,可能没有必要)
  • 然后将相同的设置改回 YES