저는 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)
정확히 NPE는 어떤 라인이 발생합니까? –
logcat에 stacktrace를 제공하십시오. 오류로 표시되지 않으면 Facebook stacktrace와 같은 경고 여야합니다. 어쩌면이 버그는 Facebook SDK에있을 수 있습니다. –
이 라인에서 NPE가 발생합니다. ParseFacebookUtils.finishAuthentication (requestCode, resultCode, data); stacktrace를 추가하겠습니다. – user3478960