根据https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/上发布的教程,我无法在我的 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): at android.os.Bundle.getString(Bundle.java:1061) 09-03 19:26:22.736: W /Bundle(17458): 在 android.content.Intent.getStringExtra(Intent.java:4466) 09-03 19:26:22.736: W/Bundle(17458): 在 com.facebook.AuthorizationClient$KatanaLoginDialogAuthHandler.tryAuthorize(AuthorizationClient. java:821) 09-03 19:26:22.736: W/Bundle(17458): at com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:272)
09-02 22:55:04.110:E/AndroidRuntime(13287):致命异常:主要 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:E/AndroidRuntime(13287):在 android.app.ActivityThread.performResumeActivity(ActivityThread.java:3036) 09-02 22 :55:04.110: E/AndroidRuntime(13287): 在 android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3077) 09-02 22:55:04.110: E/AndroidRuntime(13287): 在 android.app.ActivityThread。 handleLaunchActivity(ActivityThread.java:2373)
这是我到目前为止所做的
使用以下信息更新了 Facebook 上的应用程序(我使用了使用我机器的调试密钥库生成的 hashkey)
以下是我的清单文件中的相关信息(@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 会显示我的第一个屏幕截图中显示的错误。
Session.StatusCallback() 的调用方法被执行一次(而会话的状态为“正在打开”),但应用程序在随后的时间崩溃。这是我在应用程序崩溃之前看到的
任何帮助将不胜感激!