2016-05-05 4 views
2

Ich baue eine Android-Anwendung, die das Facebook SDK verwendet. Ich verwende derzeit den LoginManager, um den Login-Flow zu verarbeiten. Ich habe den Facebook-SDK bereits in der OnCreate-Methode initialisiert.Facebook Login nicht einloggen nach Abmelden Android

public class DummyApplication extends Application { 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     FacebookSdk.sdkInitialize(this); 
     AppEventsLogger.activateApp(this); 
    } 
} 

Ich habe auch mein Setup LoginActivity als solche:

public class LoginActivity extends AppCompatActivity { 

    @Bind(R.id.custom_login_button) 
    Button mCustomFacebookButton; 
    private CallbackManager callbackManager; 
    private LoginManager mLoginManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    callbackManager = CallbackManager.Factory.create(); 
    mLoginManager = LoginManager.getInstance(); 
    mLoginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 

      startActivity(new Intent(LoginActivity.this, MainActivity.class)); 
     } 

     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException error) { 

      error.printStackTrace(); 
     } 
    }); 
    mCustomFacebookButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mAuthProgressDialog.show(); 
      mLoginManager.logInWithReadPermissions(LoginActivity.this 
        , Arrays.asList("user_events", "email" ,"user_friends")); 
     } 
    }); 
    } 

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

Die Strömung ist, dass, sobald die Login-Taste gedrückt wird, wird es die MainActivity zu starten, und in dieser Tätigkeit gibt es eine SettingsActivity mit einem Logout-Schaltfläche, die aufruft, die Sie zurück zu der Login-Aktivität bringt. Das Problem, mit dem ich konfrontiert bin, ist, dass ich mich nach dem Abmelden nicht mehr anmelden kann und mein AccessToken immer Null ist. Im Wesentlichen stecke ich auf der LoginActivity fest.

Es wird seltsamer, sobald ich die Build-Dateien löschen und das Projekt neu importieren, funktioniert es gut, bis ich mich wieder ausloggen und dieses Problem beginnt erneut. Es hat nur dieses Problem, seit ich Android Studio 2.1, Build-Tools zu 23.0.3 und SDK-Tools zu 25.1.3 aktualisiert habe.

-Edit: seine Korrektur selbst nicht mit einem Re-Import mehr

Antwort

0

So stellt sich heraus, dass in meinem Manifest für meine LoginActivity Ich hatte Nohistory als wahr. Dies führte dazu, dass mein onActivityResult nicht aufgerufen wurde. Sobald ich diese Zeile entfernt habe, ist das Problem mit dem Facebook-Login verschwunden.