Nach der Migration auf Firebase Cloud Messaging stürzt beim Öffnen meiner App ab und es wird eine Fehlermeldung angezeigt, dass java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.
ich bereits meine neue Datei google-services.json abgelegt und mein SDK aktualisiert habe.
Hier ist meine Hauptaktivität
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());
}
}
apply plugin: 'com.google.gms.google-services'
von meiner app gradle aber stoßen einen neuen Fehler beim AufrufFirebaseInstanceId.getInstance().getToken()
in meinerMainActivity
meine App stürzt ab.apply plugin: 'com.google.gms.google-services'
? Beim Versuch, es hinzuzufügen, stoße ich immer noch auf einen Fehler. es heißtDidn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"
flutter clean & flutter run
wie in der Antwort vorgeschlagen.Nicht sicher, ob es hier relevant ist. Es gibt jedoch ein anderes Szenario, in dem dieser Absturz auftreten kann.
Wenn Ihre App über einen Dienst (mit unterschiedlichem Prozess) verfügt und Sie eine eigene
Application
Klasse erstellen , verwenden der Dienst und die Vordergrund-App dieselbe Anwendungsklasse ( nicht dieselbe Instanz ) zum Initialisieren. Wenn ich jetzt diecom.google.firebase:firebase-crash
Abhängigkeit zur Behandlung von Abstürzen verwende, wird ein Hintergrunddienst erstelltyour.app.packagename:background_crash
. Aus irgendeinem Grund führte dies zu Abstürzen in meiner App. Insbesondere, weil ich in meiner Anwendungsklasse einen Anruf getätigt habe wie:FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Ich gehe davon aus, dass der Hintergrunddienst beim Initiieren mit unserer Anwendungsklasse irgendwie nicht initialisiert ist. Um dies zu beheben, habe ich es getan
if (!FirebaseApp.getApps(this).isEmpty()) FirebaseDatabase.getInstance().setPersistenceEnabled(true);
quelle
Ich hatte ein ähnliches Problem und für mich war es ein Fehler / Problem mit der offensichtlichen Fusion. Ich habe herausgefunden, dass dies
FirebaseInitProvider
aufgrund dertools:node="replace"
Manifestdatei meiner App nicht in die endgültige Manifestdatei eingefügt wurde. Versuchen Sie also, dieses XML-Tag zu entfernen. EsFirebaseInitProvider
wird injiziert und Firebase kann ordnungsgemäß initialisiert werden.quelle
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'
quelle
@jmodrako Antwort löste mein Problem ...
tools:node="replace"
zutools:node="merge"
Erklärt ... auf AndroidManifest.xml
Von
<application ... tools:node="replace">
Zu
<application ... tools:node="merge">
Probleme mit Bibliotheksthemen zusammenführen? Erstellen Sie Probleme, die mit gelöst wurden
tools:replace="android:theme"
Credits an https://stackoverflow.com/a/38060272/2765087
quelle
Verschieben Sie Ihre Firebase-Initialisierung in die Klasse onCreate of Application. Auch wenn Sie die Offline-Persistenz aktiviert haben, sollte FirebaseDatabase.getInstance (). SetPersistenceEnabled (true) vor allen anderen Initialisierungen stehen.
quelle
Überprüfen Sie alle Konfigurationen wie folgt:
1-firebase Projekteinstellung: google-services.json ist korrekt?
2- Fügen Sie das Firebase SDK hinzu
3- sauber - baue dein Projekt neu auf
hoffentlich hilft das!
quelle
Fügen Sie app / build.gradle die folgende Zeile hinzu
apply plugin: 'com.google.gms.google-services' // Google Services plugin
Und die folgende Zeile zum Projekt build.gradle
classpath 'com.google.gms:google-services:4.3.3'
quelle
Android Studio
Funktioniert bei mir ok.
quelle
Registrieren Sie Ihre Anwendung in Firebase und kopieren Sie die Datei google-services.json in Ihr Stammprojekt.
Wenden
classpath 'com.google.gms:google-services:3.1.0
Sie root build.gradle.Bewerben Sie sich
apply plugin: 'com.google.gms.google-services
bei Ihrem Projekt gradle.quelle
Fügen Sie in Ihrer Abhängigkeit 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' }
anwenden
plugin: 'com.google.gms.google-services'
quelle
Ändern Sie die Build-Aktion (GoogleServicesJson) in den Dateinamen Google-Services.Json.
quelle
In meinem Fall, in dem 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); } }
quelle