Stai utilizzando Firebase Crash Reporting? Si potrebbe essere colpire questo errore a causa di questo se colpisce un processo in background e non il principale.
Crash Reporting crea un secondo processo (background_crash
) per inviare arresti anomali. Sfortunatamente, tutti i processi in un'app Android condividono una sottoclasse comune Application
, pertanto il metodo onCreate
viene eseguito anche nel processo in background. Questo tenta di inizializzare il database, che fallisce.
La correzione consiste nell'assicurarsi che la chiamata al database venga eseguita solo quando Firebase è configurato correttamente (che sarà nel processo principale). È possibile verificare in questo modo:
@Override
public void onCreate() {
super.onCreate();
if (!FirebaseApp.getApps(this).isEmpty()) {
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
}
fonte
2016-05-20 20:37:17
Hai creato il progetto Firebase con il nome del pacchetto e scaricato google-services.json? –
Sì, sì .. infatti la mia app senza impostare diskpersistence funziona correttamente. Se provo a abilitare la dispersione nella mia classe Application come menzionato nei documenti qui ... https://firebase.google.com/support/guides/firebase-android#get_a_database_reference_numbered ... il mio codice non funziona –
Problema noto: https: //firebase.google.com/docs/crash/android#known-issues –