0

Je suis en train d'ajouter Firebase-Cloud Messaging à mon application sans succès, que je reçois l'exception suivante:Cryptic FCM 10.2.0 non - 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) 

Voici ce que j'ai vérifié si loin:

  • services Google-est mis à 3.0.0 dans le projet fichier gradle
  • Je n'ai une dépendance liée à firebase, qui est 10.2.0
  • J'ai prise ena saigné afin que je puisse utiliser lambdas
  • J'ai ReactiveAndroid et Retrofit incorporés dans le projet, peut-être qu'ils interagissent mal? Cela dit, je ne vois pas quelque chose de suspect lors de l'exécution ./gradlew app:dependencies
  • Essayé multiDexEnabled = true, n'a pas fait une différence
  • Had a coutume applicationIdSuffix pour debug construit, a tenté de l'enlever, mais il n'a pas non plus faire une différence
  • Positionnement de apply plug: 'com.google.gms.google-services ne semble pas à la matière, actuellement à la fin du fichier gradle

ce qui pourrait être la cause? Le mieux que je puisse dire, FirebaseInitProvider appelle une méthode statique interne de attachInfo, qui à son tour tente d'appeler une méthode statique sur une classe SDK-private qui ne semble pas exister.

+0

Avez-vous d'autres dépendances google-play-services? Si c'est le cas, ils doivent être à la même version de Firebase. L'erreur semble suggérer que vous êtes en incluant des bibliothèques de Google avec des versions différentes. –

+0

Comme je l'ai mentionné, rien de suspect n'est apparu lors de l'exécution de l'application ./gradlew: dépendances. Je ne doute pas que ce soit une possibilité, mais à moins que ce ne soit une dépendance transitive, il n'y a pas de faute évidente. – Chris

Répondre

0

C'était donc bizarre:

Rien ma configuration a changé hier soir sauf que je courais la commande clean project, a ajouté la dépendance firebase-core puis rebâtie, et tout a commencé à travailler.

je l'avais supposé que firebase-messaging tiré toutes ses dépendances dans elle-même, mais qui va à l'encontre du guide d'installation, et l'accident est logique si la classe interne FirebaseInitProvider tente d'accéder est dans la dépendance firebase-core.

0

Vous avez probablement une incompatibilité entre l'une de vos dépendances play-services et Firebase dans votre niveau d'application build.gradle.

Avoir google services à la version 3.0.0 dans votre niveau de projet build.gradle est bien (com.google.gms:google-services:3.0.0). Par exemple, si vous avez la dépendance com.google.android.gms:play-services-maps:10.2.0 et com.google.firebase:firebase-invites:10.2.0, elles doivent toutes deux être de la même version 10.2.0.