webentwicklung-frage-antwort-db.com.de

FirebaseApp mit dem Namen [DEFAULT] existiert nicht

Nach der Migration zu Firebase Cloud Messaging. Beim Öffnen meiner App stürzt sie ab und wirft einen Fehler mit der Aufforderung Java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist. ab. Ich habe bereits meine neue google-services.json installiert und mein SDK aktualisiert. 

Hier ist meine MainActivity

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

//Check Google play service
    GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();
    int resultCode = googleAPI.isGooglePlayServicesAvailable(this);

    if (resultCode != ConnectionResult.SUCCESS) {
        if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
            GooglePlayServicesUtil.getErrorDialog(resultCode, this,
                    PLAY_SERVICES_RESOLUTION_REQUEST).show();
        } else {
            Log.e(LOG_TAG, "This device is not supported.");
            finish();
        }
    }

    Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken());

}
}
60
natsumiyu

Bitte überprüfen Sie noch einmal, Sie haben hinzugefügt 

apply plugin: 'com.google.gms.google-services' 

am Ende der Gradle-Datei der App und bereinigen und erstellen Sie das Projekt neu

59
Venkatesan

Nicht sicher, ob es hier relevant ist. Es gibt jedoch ein anderes Szenario, in dem dieser Absturz auftreten kann. 


Wenn Ihre App über einen Service verfügt (mit einem anderen Prozess) und Sie eine eigene Application-Klasse erstellen, verwenden der Service und die Vordergrund-App zur Initialisierung dieselbe Application-Klasse ( nicht dieselbe Instanz ). Wenn ich jetzt com.google.firebase:firebase-crash-Abhängigkeit für die Behandlung von Abstürzen verwende, wird ein Hintergrunddienst your.app.packagename:background_crash erstellt. Aus irgendeinem Grund führte dies zu Abstürzen in meiner App. Insbesondere weil ich in meiner Application-Klasse einen Anruf tätigte, 

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Ich gehe davon aus, dass der Hintergrunddienst beim Einstieg in unsere Application-Klasse irgendwie Firebase nicht initialisiert wird. Um das zu beheben, tat ich es 

if (!FirebaseApp.getApps(this).isEmpty())
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);
21
Codevalley

Ich hatte ein ähnliches Problem, und für mich war es ein Fehler/ein Problem mit der manifesten Fusion. Ich habe herausgefunden, dass FirebaseInitProvider aufgrund tools:node="replace" in der Manifestdatei meiner App nicht in die endgültige Manifestdatei eingefügt wurde. Versuchen Sie also, dieses XML-Tag zu entfernen, und FirebaseInitProvider wird injiziert, und Firebase kann ordnungsgemäß initialisiert werden.

12
jmodrako

Antwort von @jmodrako hat mein Problem gelöst ... tools:node="replace" an tools:node="merge"

Erklärt ... in AndroidManifest.xml 

Von

<application
...
tools:node="replace">

An

<application
...
tools:node="merge">

Probleme mit Bibliotheksthemen zusammenführen? Probleme mit tools:replace="Android:theme" behoben

Kredite an https://stackoverflow.com/a/38060272/2765087

build.gradle -Datei:

buildscript {
    repositories {
        jcenter()
        mavenLocal()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.1.2'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenLocal()
    }
}

\app\build.gradle -Datei:

apply plugin: 'com.Android.application'

Android {
    ..
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    ..
    compile 'com.google.firebase:firebase-core:9.0.2'
    compile 'com.google.firebase:firebase-messaging:9.0.2'
}

apply plugin: 'com.google.gms.google-services'
10
elron smith

Verschieben Sie Ihre Firebase-Initialisierung innerhalb der onCreate of Application-Klasse. Wenn Sie die Offline-Persistenz aktiviert haben, sollte FirebaseDatabase.getInstance (). SetPersistenceEnabled (true) vor allen anderen Initialisierungen stehen.

2
Ramya Ramesh

Ändern Sie die Build-Aktion (GoogleServicesJson) in den Dateinamen Google-Services.Json.

0
Abdul basha

In Ihrer Abhängigkeit fügen Sie einfach Folgendes hinzu:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
...
compile 'com.google.firebase:firebase-core:9.0.2'
compile 'com.google.firebase:firebase-messaging:9.0.2'
}

bewerben plugin: 'com.google.gms.google-services'

0
pavel

Android Studio

  1. plugin anwenden: 'com.google.gms.google-services' (build.gradle - Modulebene)
  2. Menü ~> Build ~> CleanProject

Funktioniert für mich ok.

0
Maxim Firsoff

In meinem Fall, dass ich Firebase beim Start der App nicht initialisiert habe, musste ich Folgendes tun, um das Problem zu beheben

@Service
public class FirebaseSetup implements CommandLineRunner {
    public void run(String... args) throws Exception {
        initializeFirebase();
    }
    private void initializeFirebase() throws FileNotFoundException, IOException {
        FileInputStream serviceAccount = new FileInputStream(ResourceUtils.getFile("classpath:ssf1-v1-firebase-adminsdk-zr72u-afcb5bc13b.json"));
        FirebaseOptions options = new FirebaseOptions.Builder().setCredentials(GoogleCredentials.fromStream(serviceAccount)).build();
        FirebaseApp.initializeApp(options);
    }
}
0
Anand Rockzz

Überprüfen Sie alle Konfigurationen wie folgt:

1-Firebase-Projekteinstellung: google-services.json ist korrekt? enter image description here

2- füge das firebase SDK hinzu enter image description here

3- Bereinigen - Erstellen Sie Ihr Projekt neu

hoffentlich hilft das!

0
Mr Special

Registrieren Sie Ihre Anwendung in Firebase und kopieren Sie die Datei google-services.json in Ihr Stammprojekt.

Wenden Sie classpath 'com.google.gms:google-services:3.1.0 auf Ihr root build.gradle an.

Übernehmen Sie apply plugin: 'com.google.gms.google-services für Ihr Projekt.

0
user2306383