2014-03-30 8 views
1

저는 Parse.com에 링크 된 내 앱의 페이스 북 전용 로그인으로 초보 개발자이며, 수정할 수없는 버그가 하나 있습니다. 사용자가 페이스 북에서 완전히 로그 아웃 할 때마다 다시 로그인하면 ParseFacebookUtils.finishauthentication에 대한 onActivityResult에 NPE가 생성됩니다. 비슷한 질문을 많이하는 것을 보았습니다. 그러나 해결책 중 어느 것도 나를 위해 일하지 않았습니다. 다음은 NPE를 피할 수 없다 여전히 내 코드Android NullPointerException (Parse Facebook 로그인)

내가 생각할 수있는 모든 노력을했습니다
public void parseLogin(){ 
    ParseFacebookUtils.logIn(this, new LogInCallback() { 
      @Override 
      public void done(ParseUser user, ParseException err) { 
      if (user == null) { 
      Log.d("SignIn", "Uh oh. The user cancelled the Facebook login."); 
      } else if (user.isNew()) { 
       Log.d("SignIn", "User signed up and logged in through Facebook!"); 
      } else { 
       Log.d("SignIn", "User logged in through Facebook!"); 
      } 
      } 
     }); 
    toStart(); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data); 
} 

, 그리고. 새로운 솔루션이 있으면 대단히 감사하겠습니다!

편집 여기에 내가 그것을 알아 냈 로그 캣

03-31 16:23:39.938: E/AndroidRuntime(18322): FATAL EXCEPTION: main 
03-31 16:23:39.938: E/AndroidRuntime(18322): java.lang.RuntimeException: Failure    delivering result ResultInfo{who=null, request=64206, result=-1, data=Intent { (has extras) }} to activity {com.adit02/com.adit02.SignIn}: java.lang.NullPointerException 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.app.ActivityThread.deliverResults(ActivityThread.java:2996) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3039) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.app.ActivityThread.access$1100(ActivityThread.java:124) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1178) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.os.Looper.loop(Looper.java:137) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.app.ActivityThread.main(ActivityThread.java:4440) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at java.lang.reflect.Method.invokeNative(Native Method) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at java.lang.reflect.Method.invoke(Method.java:511) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at dalvik.system.NativeStart.main(Native Method) 
03-31 16:23:39.938: E/AndroidRuntime(18322): Caused by: java.lang.NullPointerException 
03-31 16:23:39.938: E/AndroidRuntime(18322): at com.parse.FacebookAuthenticationProvider.onActivityResult(FacebookAuthenticationProvider.java:171) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at com.parse.ParseFacebookUtils.finishAuthentication(ParseFacebookUtils.java:379) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at com.adit02.SignIn.onActivityResult(SignIn.java:103) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.app.Activity.dispatchActivityResult(Activity.java:4649) 
03-31 16:23:39.938: E/AndroidRuntime(18322): at android.app.ActivityThread.deliverResults(ActivityThread.java:2992) 
+0

정확히 NPE는 어떤 라인이 발생합니까? –

+0

logcat에 stacktrace를 제공하십시오. 오류로 표시되지 않으면 Facebook stacktrace와 같은 경고 여야합니다. 어쩌면이 버그는 Facebook SDK에있을 수 있습니다. –

+0

이 라인에서 NPE가 발생합니다. ParseFacebookUtils.finishAuthentication (requestCode, resultCode, data); stacktrace를 추가하겠습니다. – user3478960

답변

-1

입니다. 문제는 페이스 북과 parseFacebook을 사용하여 동시에 로그인했기 때문에 두 가지 인증이 서로 충돌하는 경우가있었습니다. parseFacebook을 자체적으로 작동시키지는 못했지만, 페이스 북 로그인을 유지하고 해당 페이스 북 계정을 parseFacebookUtils가 아닌 parseUser와 연결했습니다. 이 문제가 해결되었습니다!

+0

이것은 해결책이 아닙니다. 작동하도록 Facebook 로그인을 할 수 없습니다. 또한, 나는이 똑같은 문제를 겪었고, 페이스 북 로그인 중에 구문 분석 로그인이 진행되지 않습니다. –

관련 문제