2013-09-04 4 views
6

Posso collegarmi con successo a Facebook e ottenere la lista amici. Tutte le connessioni sono OK. Ma quando elimino i dati di Facebook (attraverso le impostazioni-> Applicazioni) e la mia app, si verifica un problema di accesso. [SDK 3.5]Android - Il login Facebook causa errore in esaurimento solo per la prima volta

  1. lancio la mia app
  2. Effettuare una connessione facebook
  3. Facebook chiede nome utente e password, immetterli
  4. Aspetta un po '
  5. Essa mostra schermata di autorizzazione che richiede utente di base informazioni e si verifica l'errore: "La fermata applicazione di lavoro inaspettatamente riprova (FORZA CLOSE)."

Quando clicco Forza Close, stessa erro r si verifica ancora e ancora all'improvviso (mentre lo schermo di autorizzazione è ancora dietro). Se riesco ad essere abbastanza veloce, faccio clic su Chiudi forzata e quindi su Permetti autorizzazione, tutto va bene e posso vedere i miei amici. Quindi questo errore FORCE CLOSE significa qualcosa come niente? Nel registro, ci sono 3-4 degli stessi messaggi di eccezione irreversibile perché ogni volta che clicco su FORCE CLOSE, l'errore si ripresenta. Questo errore si verifica quando provo l'applicazione sul mio telefono (SE Xperia Arc S, 2.3.3). Ma quando provo su emulatori, l'errore non si verifica. Funziona senza problemi. (Emulatori sono 2.3.3 e 4,2)

09-04 18:09:47.916 E/AndroidRuntime(29511): FATAL EXCEPTION: main 
09-04 18:09:47.916 E/AndroidRuntime(29511): java.lang.RuntimeException: Unable to resume activity {com.ilanharitasi/com.facebook.LoginActivity}: java.lang.NullPointerException 
09-04 18:09:47.916 E/AndroidRuntime(29511): Caused by: java.lang.NullPointerException 
09-04 18:09:47.916 E/AndroidRuntime(29511):  ... 12 more 
09-04 18:09:51.526 E/AndroidRuntime(29538): FATAL EXCEPTION: main 
09-04 18:09:51.526 E/AndroidRuntime(29538): java.lang.RuntimeException: Unable to resume activity {com.ilanharitasi/com.facebook.LoginActivity}: java.lang.NullPointerException 
09-04 18:09:51.526 E/AndroidRuntime(29538): Caused by: java.lang.NullPointerException 
09-04 18:09:51.526 E/AndroidRuntime(29538):  ... 12 more 
09-04 18:09:53.786 E/AndroidRuntime(29547): FATAL EXCEPTION: main 
09-04 18:09:53.786 E/AndroidRuntime(29547): java.lang.RuntimeException: Unable to resume activity {com.ilanharitasi/com.facebook.LoginActivity}: java.lang.NullPointerException 
09-04 18:09:53.786 E/AndroidRuntime(29547): Caused by: java.lang.NullPointerException 
09-04 18:09:53.786 E/AndroidRuntime(29547):  ... 12 more 
09-04 18:09:55.516 E/AndroidRuntime(29557): FATAL EXCEPTION: main 
09-04 18:09:55.516 E/AndroidRuntime(29557): java.lang.RuntimeException: Unable to resume activity {com.ilanharitasi/com.facebook.LoginActivity}: java.lang.NullPointerException 
09-04 18:09:55.516 E/AndroidRuntime(29557): Caused by: java.lang.NullPointerException 
09-04 18:09:55.516 E/AndroidRuntime(29557):  ... 12 more 
09-04 18:09:57.776 E/AndroidRuntime(29564): FATAL EXCEPTION: main 
09-04 18:09:57.776 E/AndroidRuntime(29564): java.lang.RuntimeException: Unable to resume activity {com.ilanharitasi/com.facebook.LoginActivity}: java.lang.NullPointerException 
09-04 18:09:57.776 E/AndroidRuntime(29564): Caused by: java.lang.NullPointerException 
09-04 18:09:57.776 E/AndroidRuntime(29564):  ... 12 more 
09-04 18:09:59.186 E/dalvikvm(29571): Could not find class 'dalvik.system.BaseDexClassLoader', referenced from method com.facebook.common.dextricks.SystemClassLoaderAdder.a 
09-04 18:09:59.586 E/dalvik-internals(29571): Failed to look up ladDumpProfiles 
09-04 18:09:59.586 E/dalvik-internals(29571): Failed to look up ladResetProfiles 
09-04 18:09:59.586 E/dalvik-internals(29571): Failed to look up ladPrintHeaderInfo 
09-04 18:09:59.936 E/AndroidRuntime(29578): FATAL EXCEPTION: main 
09-04 18:09:59.936 E/AndroidRuntime(29578): java.lang.RuntimeException: Unable to resume activity {com.ilanharitasi/com.facebook.LoginActivity}: java.lang.NullPointerException 
09-04 18:09:59.936 E/AndroidRuntime(29578): Caused by: java.lang.NullPointerException 
09-04 18:09:59.936 E/AndroidRuntime(29578):  ... 12 more 
09-04 18:10:02.006 E/AndroidRuntime(29585): FATAL EXCEPTION: main 
09-04 18:10:02.006 E/AndroidRuntime(29585): java.lang.RuntimeException: Unable to resume activity {com.ilanharitasi/com.facebook.LoginActivity}: java.lang.NullPointerException 
09-04 18:10:02.006 E/AndroidRuntime(29585): Caused by: java.lang.NullPointerException 
09-04 18:10:02.006 E/AndroidRuntime(29585):  ... 12 more 
09-04 18:10:04.566 E/ONRESUME(29605): Onresume worked 
09-04 18:10:04.636 E/STATEM (29605): OPENING 
09-04 18:10:05.186 E/ONRESUME(29605): Onresume worked 

Dopo la prima connessione, posso trovare i miei amici senza alcun errore. Succede solo subito dopo mi collego Facebook per la prima volta e chiede il mio nome utente e la password (e quindi facendo clic su Accesso)

@Override 
    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    uiHelper = new UiLifecycleHelper(this, callback); 
    uiHelper.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_fb_findfriends); 
    LinearLayout v = (LinearLayout) findViewById(R.id.fb_app_users); 
    openSession(v); 

    } 

public void openSession(View v){ 
     // start Facebook Login 
     Session.openActiveSession(this, true, callback); 

    } 

@Override 
    protected void onResume() { 
     super.onResume(); 
     uiHelper.onResume(); 
     Log.e("ONRESUME", "Onresume çalıştı"); 
    } 

private void requestMyAppFacebookFriends(Session session) { 
     Request friendsRequest = createRequest(session); 
     friendsRequest.setCallback(new Request.Callback() { 

      @Override 
      public void onCompleted(Response response) { 

       List<GraphUser> friends = getResults(response); 
       //Display Friends 
      } 
     }); 
    friendsRequest.executeAsync(); 
} 

Inoltre non riuscivo a capire che cosa è nullo dal registro dell'output.

AGGIORNAMENTO! Ho trovato la linea in cui si verifica l'errore. E 'all'interno della linea com.facebook.AuthorizationClient.java 135

void startOrContinueAuth(AuthorizationRequest request) { 
     if (appEventsLogger == null || appEventsLogger.getApplicationId() != request.getApplicationId()) { 
      Log.e("HATA!", "BOOM"); 
      appEventsLogger = AppEventsLogger.newLogger(context, request.getApplicationId()); 
     } 

E questo metodo startOrContinueAuth è sparato in com.Facebook.LoginActivity

@Override 
public void onResume() { 
    super.onResume(); 

    // If the calling package is null, this generally means that the callee was started 
    // with a launchMode of singleInstance. Unfortunately, Android does not allow a result 
    // to be set when the callee is a singleInstance, so we log an error and return. 
    if (callingPackage == null) { 
     Log.e(TAG, "Aheyy"+NULL_CALLING_PKG_ERROR_MSG); 
     finish(); 
     return; 
    } 

    authorizationClient.startOrContinueAuth(request); 
} 
     if (getInProgress()) { 
      continueAuth(); 
     } else { 
      authorize(request); 
     } 
    } 

UPDATE 2!

  • Mi sono molto confuso. Ho semplificato la mia applicazione al metodo base openActiveSession(). Arresti anomali
  • Ho provato l'applicazione di esempio di Facebook, FriendPicker e anche l'errore con lo stesso errore di registro.
  • provato su emulatore, funziona, ma quando ho ruotare lo schermo quando schermata di autorizzazione si presenta (cancel-consentono), stesso errore si verifica (in grado di onResume bla bla ...) Ottenere lo stesso errore in un'applicazione di esempio di Facebook è strano
+1

potete inserire il codice di attività/Frammento? – Emmanuel

+0

aggiunte alcune parti del codice, requestMyAppFacebookFriends (Session session) viene eseguito dopo i cambiamenti di stato. –

+0

sta chiamando requestMyAppFacebookFriends (Session session) da dentro la chiamata() nella richiamata dopo il check station.isOpened()? – Emmanuel

risposta

1

Non credo che questo sia un problema con la tua app. Le persone hanno segnalato questo bug e ho appena risposto a una domanda simile here. Fondamentalmente Facebook ha rilasciato una nuova versione del loro SDK che ieri ha riparato l'arresto NPE onResume nel suo AuthorizationClient. Verifica se l'aggiornamento risolve il problema.

0

Fondamentalmente questo problema si verifica quando l'attività di chiamata non è attiva o distrutta. In Android il metodo onActivityResult() viene chiamato dopo il login. L'attività viene distrutta con forza dal dispositivo mobile (l'opzione Non mantenere attività attiva nelle impostazioni delle opzioni degli sviluppatori). Per favore Una volta verificato il controllo incrociato delle opzioni degli sviluppatori, l'opzione Non tenere le attività è abilitata o disabilitata.

0

Assicurarsi che nel manifesto che l'attività Lgiń è in ritratto. C'è un problema con la perdita dell'attività se non è nel ritratto ... che è molto zoppo ...: |

Problemi correlati