NullPointerException al iniciar sesión con Facebook SDK y ParseFacebookUtils

Estamos usando Parse SDK y tratando de iniciar sesión con la función de Facebook. Pero no pudimos entenderlo. Obtenemos NullPointerException. ¿Qué hay de malo con nuestra implementación?

Nuestras versiones SDK que utilizamos: Parse SDK 1.10.3 , Facebook SDK 4.7.0 , ParseFacebookUtilsV4-1.10.3

Stacktrace :

11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.facebook.login.LoginClient.getLogger(LoginClient.java:363) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.facebook.login.LoginClient.logAuthorizationMethodComplete(LoginClient.java:413) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.facebook.login.LoginClient.tryNextHandler(LoginClient.java:196) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.facebook.login.GetTokenLoginMethodHandler.getTokenCompleted(GetTokenLoginMethodHandler.java:119) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.facebook.login.GetTokenLoginMethodHandler$1.completed(GetTokenLoginMethodHandler.java:74) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.facebook.internal.PlatformServiceClient.callback(PlatformServiceClient.java:157) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.facebook.internal.PlatformServiceClient.handleMessage(PlatformServiceClient.java:141) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.facebook.internal.PlatformServiceClient$1.handleMessage(PlatformServiceClient.java:62) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at android.os.Looper.loop(Looper.java:145) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5834) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) 11-08 15:27:34.507 8983-8983/com.taurus.trolley E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183) 

A continuación, hemos añadido este código a manifiesto.

AndroidManifest.xml:

 <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> <activity android:name="com.facebook.FacebookActivity" android:configChanges= "keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/app_name" /> 

Añadimos este código a Application # onCreate ().

Aplicación # onCreate ():

  // Facebook SDK initializing FacebookSdk.sdkInitialize(getApplicationContext()); // Enable Local Datastore. Parse.enableLocalDatastore(this); Parse.initialize(this, PARSE_APP_ID, PARSE_CLIENT_KEY); ParseFacebookUtils.initialize(this); 

El código que proporciona la función de inicio de sesión:

  List<String> permissions = Arrays.asList("public_profile", "email"); ParseFacebookUtils.logInWithReadPermissionsInBackground(this, permissions, new LogInCallback() { @Override public void done(ParseUser user, ParseException e) { if (user == null) { Log.d(TAG, "Uh oh. The user cancelled the Facebook login."); } else if (user.isNew()) { Log.d(TAG, "User signed up and logged in through Facebook!"); } else { Log.d(TAG, "User logged in through Facebook!"); } } }); 

    Tuve el mismo problema. Después de esperar un rato, funciona perfectamente. Por lo tanto, creo que FB necesidad de hacer algo cuando la primera entrada.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.