Facebook Android SDK和java.lang.NullPointerException

inf*_*ity 12 android facebook android-facebook facebook-sdk-3.0

根据https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/上发布的教程,我无法在我的Android应用程序中打开活动的facebook会话

现在我已经挣扎了很长一段时间没有运气!如果你们中的一个人能指出我正确的方向,我将很高兴!(我打赌这个错误是我身边的一些设置,但我无法发现它)

这是我在调用Session.openActiveSession后看到的错误(在我的活动的onCreate中这是真的,新的Session.StatusCallback()(我几乎遵循facevook开发人员教程中给出的步骤)


编辑: 首先记录以下警告消息,然后在随后的屏幕截图中显示错误消息

09-03 19:26:22.726:W/Bundle(17458):键 com.facebook.platform.protocol.PROTOCOL_VERSION期望String但值是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):at 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):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:E/AndroidRuntime(13287):at 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上更新了应用程序(我使用了使用我机器的调试密钥库生成的哈希键)

在此输入图像描述

以下是我的清单文件中的相关信息(@ string/app_id是来自facebook开发门户的应用程序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);
    }
Run Code Online (Sandbox Code Playgroud)

在执行Session.openActiveSession时,logcat显示我的第一个屏幕截图中显示的错误.

Session.StatusCallback()的调用方法执行一次(会话有一个状态'打开'),但应用程序崩溃了后续时间.这是我在App崩溃之前看到的内容

在此输入图像描述

任何帮助将不胜感激!

Ven*_*kat 7

由于Facebook SDK的问题,请从以下URL下载并使用Facebook SDK 3.5.2: - https://developers.facebook.com/docs/android/