0

Ich versuche Firebase Cloud Messaging meiner App ohne Erfolg hinzuzufügen, wie ich die folgende Ausnahme erhalten:Cryptic FCM 10.2.0 Failure - FirebaseInitProvider, NoSuchMethodError

1 27336-27336/com.company.here E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.company.here, PID: 27336 
                     java.lang.NoSuchMethodError: No static method zzb(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzaa; or its super classes (declaration of 'com.google.android.gms.common.internal.zzaa' appears in /data/app/com.company.here.debug-1/base.apk) 
                      at com.google.firebase.provider.FirebaseInitProvider.zza(Unknown Source) 
                      at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
                      at android.app.ActivityThread.installProvider(ActivityThread.java:5883) 
                      at android.app.ActivityThread.installContentProviders(ActivityThread.java:5475) 
                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5414) 
                      at android.app.ActivityThread.-wrap2(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1546) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:154) 
                      at android.app.ActivityThread.main(ActivityThread.java:6154) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757) 

Hier ist, was ich so überprüft haben weit:

  • google-Dienste 3.0.0 im Projekt gradle Datei festgelegt ist
  • ich nur eine Abhängigkeit zu Feuerbasis bezogen haben, die 10.2.0
  • ist, ich habe jack ena ausgeblutet, damit ich Lambdas verwenden kann
  • Ich habe ReactiveAndroid und Retrofit in das Projekt integriert, vielleicht interagieren sie schlecht? Das sagte ich nicht verdächtig nichts gesehen, wenn ./gradlew app:dependencies
  • multiDexEnabled = true Versuchte läuft, machen keinen Unterschied
  • eine benutzerdefinierte Hatte applicationIdSuffix für Debugbuilds, versucht, es zu entfernen, aber es machte auch keinen Unterschied
  • Positionierung von apply plug: 'com.google.gms.google-services scheint nicht wichtig, derzeit am Ende der Gradle-Datei

Was könnte dies verursachen? Soweit ich das beurteilen kann, ruft FirebaseInitProvider eine interne statische Methode von attachInfo auf, die wiederum versucht, eine statische Methode für eine SDK-private Klasse aufzurufen, die anscheinend nicht existiert.

+0

Haben Sie andere Google-Play-Services-Abhängigkeiten? Wenn ja, müssen sie auf die gleiche Version des Firebase eins sein. Der Fehler scheint darauf hinzudeuten, dass Sie Google-Bibliotheken mit unterschiedlichen Versionen einschließen. –

+0

Wie ich bereits erwähnt habe, ist nichts Verdächtiges aufgetaucht, wenn ./gradlew app: dependencies läuft. Ich bezweifle nicht, dass dies eine Möglichkeit ist, aber wenn es keine transitive Abhängigkeit ist, gibt es keinen offensichtlichen Fehler. – Chris

Antwort

0

also war seltsam:

nichts über mein Setup von der letzten Nacht geändert, außer ich den clean project Befehl hinzugefügt, um die firebase-core Abhängigkeit und dann wieder aufgebaut lief, und alles begann zu arbeiten.

Ich hatte angenommen, dass firebase-messaging selbst in all ihren Abhängigkeiten installiert, aber das geht gegen die Installationsanleitung, und der Absturz macht Sinn, wenn die interne Klasse FirebaseInitProvider zuzugreifen versucht in der firebase-core Abhängigkeit ist.

0

Sie haben wahrscheinlich eine Diskrepanz von einem Ihrer play-services Abhängigkeiten und Firebase in Ihrem App-Level build.gradle.

Mit Google Services 3.0.0 in Ihrer Projektstufe build.gradle ist in Ordnung (com.google.gms:google-services:3.0.0). Wenn Sie beispielsweise die Abhängigkeit com.google.android.gms:play-services-maps:10.2.0 und com.google.firebase:firebase-invites:10.2.0 haben, müssen beide die gleiche Version 10.2.0 sein.