在Android应用程序中登录Facebook后出现NullPointerException

在Android应用程序中登录Facebook后出现NullPointerException,android,facebook-login,Android,Facebook Login,在我的应用程序中登录Facebook后,在onActivityResult获得NPE。大多数用户似乎都能正常工作,但一些用户报告了此问题。我使用的是SDK 3.5.2 java.lang.RuntimeException:无法恢复活动{------------}:java.lang.RuntimeException:无法将结果ResultInfo{who=null,request=64206,result=0,data=Intent{(has extras)}}传递到活动{-----------

在我的应用程序中登录Facebook后,在onActivityResult获得NPE。大多数用户似乎都能正常工作,但一些用户报告了此问题。我使用的是SDK 3.5.2

java.lang.RuntimeException:无法恢复活动{------------}:java.lang.RuntimeException:无法将结果ResultInfo{who=null,request=64206,result=0,data=Intent{(has extras)}}传递到活动{--------------------------------------}:java.lang.NullPointerException(位于android.app.ActivityThread.performResumeActivity上)android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3185)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)android.app.ActivityThread.access$2300(ActivityThread.java:132)android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)android.app.ActivityThread.main(ActivityThread.java:4669)的android.os.Handler.dispatchMessage(Handler.java:99)的android.os.Looper.loop(Looper.java:123)的java.lang.reflect.Method.invokenactive(Native Method)的java.lang.reflect.Method.invoke(Method.java:521)的com.android.internal.os.zgateinit$MethodAndArgsCaller.run(zgoteinit.java:876)的java:在dalvik.system.NativeStart.main(本机方法)的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)上,由于以下原因导致:java.lang.RuntimeException:未能将结果ResultInfo{who=null,request=64206,result=0,data=Intent{(has extras)}传递到活动{-----------------------}:android.app.ActivityThread.deliverResults(ActivityThread.java:3557)上的java.lang.NullPointerException(android.app.ActivityThread.performResumeActivity(ActivityThread.java:3157)…12更多原因是:android.app.Activity.dispatchActivityResult上的java.lang.NullPointerException(登录.java:720)(Activity.java:3905)在android.app.ActivityThread.deliverResults(ActivityThread.java:3553)…13更多java.lang.RuntimeException:无法将结果ResultInfo{who=null,request=64206,result=0,data=Intent{(具有额外功能)}传递到活动{------------------------------------------------}android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)中的:java.lang.NullPointerException位于android.app.ActivityThread.deliverResults(ActivityThread.java:3557)位于android.app.ActivityThread.HandlereSumeCactivity(ActivityThread.java:3157)在android.app.ActivityThread.access$2300(ActivityThread.java:132)在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)在android.os.Handler.dispatchMessage(Handler.java:99)在android.os.Looper.loop(Looper.java:123)在android.app.ActivityThread.main(ActivityThread.java:4669)在java.lang.reflect.Method.invokenactive(本机方法)位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)的java.lang.reflect.Method.invoke(Method.java:521)处,位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)处,位于dalvik.system.NativeStart.main(本机方法)处,原因是:java.lang.NullPointerException------------------------------------(LogIn.java:720)在android.app.Activity.dispatchActivityResult(Activity.java:3905)在android.app.ActivityThread.deliverResults(ActivityThread.java:3553)在android.app.Activity.dispatchActivityResult(Activity.java:3905)在---------------------------------------------------------------------(LogIn.java:720)在更多的java.lang.NullPointerExceptionandroid.app.ActivityThread.deliverResults(ActivityThread.java:3553)和android.app.ActivityThread.performResumeActivity(ActivityThread.java:3157)以及android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3185)和android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)和android.app.ActivityThread.ActivityThread.access(ActivityThread.java:132)在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)在android.os.Handler.dispatchMessage(Handler.java:99)在android.os.Looper.loop(Looper.java:123)在android.app.ActivityThread.main(ActivityThread.java:4669)在java.lang.reflect.Method.invokenactive(本机方法)在java.lang.reflect.invoke(Method.java:521)位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)位于dalvik.system.NativeStart.main(本机方法)

这是我这行的代码

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

检查Session.getActiveSession()是否通过调试您的应用程序返回null!Logcat非常清楚
,原因是:co.acjs.cricdecode.LogIn.onActivityResult(LogIn.java:720)处的java.lang.NullPointerException
但它适用于大多数人。而不适用于某些人…怎么可能?您的上下文可能为空?请有人发表评论。@A.S.我在会话中没有得到空值。getActiveSession()。不知道出了什么问题。它对我来说工作得很好,但对我的一些用户来说不是。他们登录了吗?可能他们取消了登录,就像在FB示例中检查getActiveSession()!=null,然后才处理它。然而,你的onactivityResult可能被另一个StartingEntityByResulr调用,所以只能执行getActiveSession()当您通过获取resultcode从fb sdk获得结果时
// [START onActivityResult]
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {    // Taken
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode != RESULT_CANCELED&&resultCode != RESULT_CANCELED) {
        mCallbackManager.onActivityResult(requestCode, resultCode, data);
    }// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
    if (requestCode == RC_SIGN_IN) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        handleSignInResult(result);
    }
}