Android Facebook SDK 3.0会话状态“;开场白;

Android Facebook SDK 3.0会话状态“;开场白;,android,facebook,facebook-android-sdk,Android,Facebook,Facebook Android Sdk,我正在使用他们的文档集成Facebook的登录。我遇到了一个问题,当我点击Facebook登录小部件时,会话变为“打开”,应用程序崩溃 我的Facebook按钮布局 <com.facebook.widget.LoginButton android:id="@+id/authButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layo

我正在使用他们的文档集成Facebook的登录。我遇到了一个问题,当我点击Facebook登录小部件时,会话变为“打开”,应用程序崩溃

我的Facebook按钮布局

 <com.facebook.widget.LoginButton
    android:id="@+id/authButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true" 
    />
}

在活动中,我实现了必需的onActivityResult并检索片段

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(savedInstanceState == null) {
            // Add the fragment on initial activity setup
            mainFragment = new FacebookFragment();
            getSupportFragmentManager()
            .beginTransaction()
            .add(android.R.id.content, mainFragment)
            .commit();
        } else {
            // Or set the fragment from restored state info
            mainFragment = (FacebookFragment) getSupportFragmentManager()
            .findFragmentById(android.R.id.content);
        }   
}


    @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
我想问题可能在于密钥散列,但我完全按照这个问题上的答案来做


非常感谢您在您的
onResume()中提供有关如何将状态设置为“Opened”的任何线索

Add
session.addCallback(callback)


问题在于让android:clearTaskOnLaunch=“true”登录facebook的活动。无法调用OnActivityResult。当我在调试模式下运行应用程序时,我遇到了一个异常。

谢谢,当我进入我的计算机时,我会尝试一下。我还没有尝试过,但回调的目的是什么?回调是一个带有一个抽象方法(调用)的接口,每次会话状态改变(打开、关闭、打开等)时都会调用该方法。您已经在代码中实现了Session.Callback(回调)。您需要它来检查会话何时最终更改为Openi状态。我添加了回调,但应用程序仍然关闭。确保在会话打开之前,您不会对会话执行任何操作(查询帖子、评论、共享等),并且您拥有正确的权限+1
android:noHistory=“true”
AndroidManifest
中的
是我的原因。
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(savedInstanceState == null) {
            // Add the fragment on initial activity setup
            mainFragment = new FacebookFragment();
            getSupportFragmentManager()
            .beginTransaction()
            .add(android.R.id.content, mainFragment)
            .commit();
        } else {
            // Or set the fragment from restored state info
            mainFragment = (FacebookFragment) getSupportFragmentManager()
            .findFragmentById(android.R.id.content);
        }   
}


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