2014-05-19 1 views
0

En utilisant le facebook sdk 3.14 pour Android quand je change mon mot de passe, puis essayez de vous connecter à l'application, l'application native natif s'ouvre et me demande d'entrer le nouveau mot de passe. Le problème est que si je mets mon application en arrière-plan et que je reprends mon application et que j'entre le nouveau mot de passe et que je clique sur connexion, l'application se bloque lorsque ma session devient nulle sur OnActivityResult. Quelqu'un peut-il suggérer comment éviter que la session obtienne la nullité ou comment la manipuler.Facebook Session null sur OnActivityResult

// This method gets the user logged in without any permission(basic 
// permissions which are default will be asked). 
@Override 
public void login() { 
    session = Session.getActiveSession(); 

       if (session == null 
       || session.getState() == SessionState.CLOSED_LOGIN_FAILED 
       || session.getState() == SessionState.CLOSED) { 
      session = new Session(context); 
     } 
     if (!session.isOpened()) { 
      session.openForRead(new Session.OpenRequest(this)); 
     } 
     Session.setActiveSession(session); 

} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    session = Session.getActiveSession(); 
    session.onActivityResult(this.activity, requestCode, resultCode, 
       data); 
    if (resultCode == Activity.RESULT_OK && session.isOpened()) { 
     loginResult(true); 
    } 

    // If the user cancels the login process or it gets cancelled due to 
    // some another reason. 
    if (resultCode == Activity.RESULT_CANCELED) { 
     Log.e("LOGIN", "CANCELLED"); 
     inter.loginResult(false); 
    } 

} 



// Facebook Login Result 
@Override 
public void loginResult(boolean result) { 
    // TODO Auto-generated method stub 
    if (result) { 
     Log.e("Facebook Login ", "Successful"); 
    } else { 
     Log.e("Facebook Logout", "Un Successful"); 
    } 
} 

L'exception qui montre qu'il est:

java.lang.RuntimeException: Unable to resume activity {com.example.FirstDemo/com.example.FirstDemo.FC_LoginActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=199188, result=-1, data=Intent { (has extras) }} to activity {com.example.FirstDemo/com.example.FirstDemo.FC_LoginActivity}: java.lang.NullPointerException 
+0

Où est votre mec de code? ?? Postez votre erreur logcat complète. – GrIsHu

Répondre

0

Essayez comme ci-dessous:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    session = Session.getActiveSession(); 
    if(session !=null) 
    { 
     session .onActivityResult(this.activity, requestCode, resultCode, 
       data); 
     if(session.isOpened()) 
     { 
      loginResult(true); 
     } 
     else 
     { 
       loginResult(false); 
     } 
    } 
} 
+0

Pouvez-vous m'aider [ici] (http://stackoverflow.com/questions/24029980/deploy-android-app-through-google-play-private-channel) –

Questions connexes