2015-11-08 11 views
5

Usiamo Parse SDK e proviamo ad accedere con la funzione Facebook. Ma non siamo riusciti a capirlo. Otteniamo NullPointerException. Cosa c'è di sbagliato nella nostra implementazione?NullPointerException quando si effettua l'accesso con Facebook SDK e ParseFacebookUtils

Le nostre versioni SDK abbiamo usato: 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) 

Abbiamo aggiunto questo codice qui sotto per manifest.

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" /> 

Abbiamo aggiunto questo codice di seguito per il metodo() Applicazione # onCreate.

Application # 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); 

Il codice che fornisce la funzione di login:

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!"); 
      } 
     } 
    }); 
+0

Qualche soluzione? Sto affrontando lo stesso problema – seema

risposta

0

Ho avuto lo stesso problema. Dopo aver atteso un po ', funziona perfettamente. Quindi, penso che FB debba fare qualcosa quando si effettua il login.