Сбой инициализации API Firebase при запуске

При запуске приложения на консоль выводится следующее:

Firebase API initialization failure.                                                        
java.lang.reflect.InvocationTargetException
   at java.lang.reflect.Method.invoke(Native Method)
   at com.google.firebase.FirebaseApp.zza(Unknown Source)
   at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
   //..
Caused by: java.lang.IllegalAccessError: Method 'void android.support.v4.content.ContextCompat.<init>()' is inaccessible to class 'com.google.firebase.iid.zzg'

Настройка Firebase была выполнена в соответствии с инструкциями:

  1. classpath 'com.google.gms:google-services:3.1.0' был добавлен на верхний уровень build.gradle
  2. apply plugin: 'com.google.gms.google-services' был добавлен на уровень приложения build.gradle

Бег ./gradlew app:dependenciesЯ вижу следующий вывод:

com.google.firebase:firebase-core:9.0.0
     \--- com.google.firebase:firebase-analytics:9.0.0
          +--- com.google.android.gms:play-services-basement:9.0.0
          |    \--- com.android.support:support-v4:23.0.0 -> 25.3.1 (*)
          +--- com.google.firebase:firebase-common:9.0.0
          |    +--- com.google.android.gms:play-services-basement:9.0.0 (*)
          |    \--- com.google.android.gms:play-services-tasks:9.0.0
          |         \--- com.google.android.gms:play-services-basement:9.0.0 (*)
          \--- com.google.firebase:firebase-analytics-impl:9.0.0
               +--- com.google.android.gms:play-services-base:9.0.0
               |    +--- com.google.android.gms:play-services-basement:9.0.0 (*)
               |    +--- com.google.firebase:firebase-common:9.0.0 (*)
               |    \--- com.google.android.gms:play-services-tasks:9.0.0 (*)
               +--- com.google.android.gms:play-services-basement:9.0.0 (*)
               +--- com.google.firebase:firebase-iid:9.0.0
               |    +--- com.google.android.gms:play-services-basement:9.0.0 (*)
               |    \--- com.google.firebase:firebase-common:9.0.0 (*)
               \--- com.google.firebase:firebase-common:9.0.0 (*)

Возможно, это часть проблемы, а может и нет, но я нахожу странным, что последняя версия плагина включает более старую версию Firebase (9.0.0) вместо 11.0.1,

Также, как говорится в сообщении об ошибке, проблема вызвана следующим:

java.lang.IllegalAccessError: Method 'void android.support.v4.content.ContextCompat.<init>()'

Это говорит о том, что библиотека поддержки v4 может иметь отношение к проблеме.

Что вызывает эти проблемы, и каково решение?

1 ответ

Когда я запускаю задачу зависимостей, библиотеки Google Play и Firebase не указываются в качестве зависимостей в модуле приложения build.gradleЯ вижу это предупреждение в верхней части вывода:

google-services plugin could not detect any version for com.google.android.gms or com.google.firebase, default version: 9.0.0 will be used.
please apply google-services plugin at the bottom of the build file.

Прокрутите это сообщение вправо, чтобы увидеть: default version: 9.0.0 will be used

Причина, по которой плагин должен быть применен после блока зависимостей в build.gradle в том, что он сканирует список библиотек, чтобы определить, какую версию использовать для его обработки. В зависимости от вашего модуля должна быть хотя бы одна библиотека Firebase или Google Play, чтобы плагин мог выбрать номер версии.

Вы указываете в комментарии к своему посту, что явно в зависимости от ядра не требуется. Это где-то в документации? Изучив Руководства по установке для каждого из API-интерфейсов Firebase ( Аналитика, База данных в реальном времени, Хранилище, Отчеты о сбоях и т. Д.), Каждый из них содержит шаг по добавлению библиотеки этого API к зависимостям.

Другие вопросы по тегам