FirebaseInitProvider: инициализация FirebaseApp неудачна

Мы следили за Добавить Firebase в ваш проект Android, но мы не можем видеть приложение, получающее данные в Firebase Console.
И когда мы запускаем приложение, в журнале говорится:

FirebaseInitProvider: FirebaseApp initialization unsuccessful

Что это значит? Что мы делаем неправильно?
Я не могу найти эту ошибку в документах, а не в StackOverflow.

Ответ 1

Что это значит? Что мы делаем неправильно?

Предположим, что аутентификация не удалась.

a) buildscript repositories и dependencies для уровня проекта build.gradle:

buildscript {
    repositories {
        jcenter()
        maven {url 'https://maven.google.com'}
    }
    dependencies {

        // Android Build Tools Gradle Plugin
        classpath "com.android.tools.build:gradle:3.0.1"

        // Google Services Gradle Plugin
        classpath "com.google.gms:google-services:3.1.1"

        // Firebase Plugins (optional)
        // classpath 'com.google.firebase:firebase-plugins:1.1.4'
    }
}

b) dependencies для уровня модуля mobile/build.gradle (на изображениях Android x86 для Android могут быть установлены предыдущие версии установленных приложений Google Play, например. 10.2.0 работает на текущий x86 эмулятор, а 11.6.0 работает на моем физическом устройстве ARM). ссылки play-services и firebase-core будут компилировать все их зависимости, если не исключить некоторые из них.

android {
    ...
    buildTypes {
        debug {
            // suffixing the package name for debug builds,
            // in order to partially mute the crash-reporting
            // is an *optional* configuration (see below):
            applicationIdSuffix ".debug"
        }
    }
}

dependencies {
    ...
    // Google Play Services Library (in particular "play-services-auth")
    compile("com.google.android.gms:play-services:11.6.0") {}

    // Google Firebase Library
    compile("com.google.firebase:firebase-core:11.6.0") {}
}

c) нижняя строка mobile/build.gradle должна быть:

// apply the Google Services Plugin
apply plugin: "com.google.gms.google-services"

d) убедитесь, что (загруженные) учетные данные доступны в app/google-services.json; на Firebase Console нужно добавить и SHA1 (или SHA256) хэши отладки и в хранилище ключей релиза, чтобы обеспечить правильную аутентификацию обеих строчек; после всех совпадений он должен сообщить:

I/FirebaseInitProvider: FirebaseApp initialization successful

Все это хорошо документировано, просто см. Настройка сервисов Google Play, Firebase Quickstart или Отчеты о сбоях; в то время как я нахожу эту статью в блоге Firebase весьма полезной: Организация ваших приложений для Android, основанных на Firebase, поскольку объясняет, как частично отключить крах -составление отчетов. примечания к выпуску всегда сообщают об обновлениях и изменениях.

Ответ 2

Это происходит, когда у вас нет apply plugin: 'com.google.gms.google-services' в app/build.gradle. Попробуйте добавить его.

Также убедитесь, что в Android SDK Manager установлен SDK Google Play.

Ответ 3

Первое, что я бы посоветовал вам проверить:

1) Включили ли вы use-permission INTERNET в свой манифест?

Ответ 4

Я получил тот же вывод logcat.

Исправлено это, обновив мою зависимость Служб Google Play до 9.0.0 в моем приложении /build.gradle

и обновление

buildScript {
    //...
    dependencies {
        //...
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

в моем проекте build.gradle до 3.0.0

Ответ 5

В моем случае я пытался выборочно компилировать сервисы Google Play. Вместо использования

compile 'com.google.android.gms:play-services:9.4.0'

как описано в: https://developers.google.com/android/guides/setup#ensure_devices_have_the_google_play_services_apk

Я вручную добавил карты и некоторые другие модули зависимостей из Служб Google Play как

compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.google.android.gms:play-services-places:9.4.0'

Вряд ли Firebase остановилась после этого.

В результате мне пришлось отступить и вернуться к использованию

compile 'com.google.android.gms:play-services:9.4.0'

вместо выборочного.