Java 为什么在使用Facebook登录按钮调用CallbackManager上的onActivityResult()后完全没有发生任何事情?

Java 为什么在使用Facebook登录按钮调用CallbackManager上的onActivityResult()后完全没有发生任何事情?,java,android,facebook,facebook-login,facebook-android-sdk,Java,Android,Facebook,Facebook Login,Facebook Android Sdk,我一直在想如何解决这个问题,但没有成功 这里的问题是,单击“登录”按钮后,它会正常加载Facebook活动,当它完成时,“我的活动”会收到活动结果并通知CallbackManager(如文档中所述) 不幸的是,从这一点上什么也没有发生,注册的FacebookCallback没有执行任何方法,甚至没有记录一行来通知错误 以下是涉及的文件: public class LoginActivity extends Activity CallbackManager callbackManager

我一直在想如何解决这个问题,但没有成功

这里的问题是,单击“登录”按钮后,它会正常加载Facebook活动,当它完成时,“我的活动”会收到活动结果并通知CallbackManager(如文档中所述)

不幸的是,从这一点上什么也没有发生,注册的FacebookCallback没有执行任何方法,甚至没有记录一行来通知错误

以下是涉及的文件:

public class LoginActivity extends Activity

    CallbackManager callbackManager;
    LoginButton loginFacebook;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(this);

        setContentView(R.layout.activity_login);


        ...


        callbackManager = CallbackManager.Factory.create();
        loginFacebook = (LoginButton) findViewById(R.id.login_button);
        loginFacebook.setReadPermissions("public_profile","email");
        loginFacebook.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

            @Override
            public void onSuccess(LoginResult loginResult) {
                ...
                (This is never executed)
            }

            @Override
            public void onCancel() {
                ...
                (Not executed)
            }

            @Override
            public void onError(FacebookException e) {
                ...
                (Not executed either)
            }
        });

    }



    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(resultCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);
    }


    ...


}
公共类LoginActivity扩展活动
CallbackManager CallbackManager;
LoginButton loginFacebook;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
FacebookSdk.sdk初始化(此);
setContentView(R.layout.activity\u登录);
...
callbackManager=callbackManager.Factory.create();
loginFacebook=(LoginButton)findViewById(R.id.login_按钮);
loginFacebook.setReadPermissions(“公共档案”、“电子邮件”);
loginFacebook.registerCallback(callbackManager,new FacebookCallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
...
(这是从未执行过的)
}
@凌驾
公开作废{
...
(未执行)
}
@凌驾
公共无效onError(FaceBook例外e){
...
(也未执行)
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
callbackManager.onActivityResult(结果代码、结果代码、数据);
super.onActivityResult(请求代码、结果代码、数据);
}
...
}
activity_login.xml包含如下按钮

<com.facebook.login.widget.LoginButton
            android:id="@+id/login_button"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_horizontal"/>

我还在我的android清单文件中添加了Facebook活动和应用程序ID

<activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />

以及facebook应用程序中的android应用程序密钥


希望能找到解决方案,非常感谢。

尝试在应用程序之间的manifest.xml中添加此选项

<activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" /><activity

好的,我现在明白了。这可能是错误的

callbackManager.onActivityResult(resultCode, resultCode, data);
请参见
resultCode
输入两次。您要做的是:

callbackManager.onActivityResult(requestCode, resultCode, data);

是否出现请求用户许可的对话框?是。当我请求更多权限(如生日)时,用户必须接受它们。现在,窗口显示一个加载图标,然后很快自动消失。您可以调试ActivityResult并查看其中是否有任何内容吗?是:requestCode是64206,resultCode是-1。意图有额外内容(我无法访问,因为它是一个不在我视线范围内的facebook对象)您是否使用您正在使用的IDE生成了哈希键?抱歉,我忘记显示清单文件的该部分。它就在那里,就像那样。我将编辑我的原始问题并添加它。