我在我的安卓应用中按照 https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/ 上发布的教程尝试打开一个活动的Facebook会话,但是一直无法成功。我已经尝试了很长时间,但没有运气!如果有人能指点我方向,我将非常感激!(我猜错误出现在我的一些设置上,但我无法找到它)
以下是在我的活动的onCreate方法中调用Session.openActiveSession(this, true, new Session.StatusCallback()之后看到的错误信息。(基本上我正在遵循Facevook开发人员教程中给出的步骤)
编辑: 以下警告消息首先被记录,然后是随后的屏幕截图中的错误消息
09-03 19:26:22.726: W/Bundle(17458): 键com.facebook.platform.protocol.PROTOCOL_VERSION预期为字符串,但值是java.lang.Integer。返回默认值。 09-03 19:26:22.736: W/Bundle(17458): 尝试转换生成的内部异常:09-03 19:26:22.736: W/Bundle(17458): java.lang.ClassCastException:java.lang.Integer无法转换为java.lang.String 09-03 19:26:22.736: W/Bundle(17458): 在android.os.Bundle.getString(Bundle.java:1061) 09-03 19:26:22.736: 在android.content.Intent.getStringExtra(Intent.java:4466) 09-03 19:26:22.736: 在com.facebook.AuthorizationClient$KatanaLoginDialogAuthHandler.tryAuthorize(AuthorizationClient.java:821)中 在com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:272)
09-02 22:55:04.110: E/AndroidRuntime(13287): FATAL EXCEPTION: main 09-02 22:55:04.110: E/AndroidRuntime(13287): java.lang.RuntimeException:无法恢复活动 {com.good.amrfbintegration/com.facebook.LoginActivity}: java.lang.NullPointerException 09-02 22:55:04.110: 在android.app.ActivityThread.performResumeActivity(ActivityThread.java:3036) 中的E/AndroidRuntime(13287): 09-02 22:55:04.110: 在android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3077) 中的E/AndroidRuntime(13287): 09-02 22:55:04.110: 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2373) 中的E/AndroidRuntime(13287): at
到目前为止,我已经完成了以下工作
在Facebook上更新应用程序并提供以下信息(使用我的机器的调试密钥库生成的哈希键)
这是我的清单文件中的相关信息(@string/app_id 是从Facebook开发门户获取的App Id)
我以这种方式在项目中引用了Facebook SDK
这是我主要活动的OnCreate方法中的代码
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity = this;
Session.openActiveSession(this, true, new Session.StatusCallback()
{
@Override
public void call(Session session, SessionState state, Exception exception)
{
if (session.isOpened())
{
Toast.makeText(activity, "Connected to Fb", Toast.LENGTH_SHORT).show();
}
}});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
执行Session.openActiveSession时,logcat显示了第一个截图中显示的错误。
在会话具有状态“opening”时,Session.StatusCallback()的调用方法只执行一次,但是应用程序在随后的时间崩溃。在应用程序崩溃之前,我看到了以下内容:
非常感谢您的任何帮助!