web-dev-qa-db-fra.com

FirebaseInitProvider: Echec de l'initialisation de FirebaseApp

Nous avons suivi le Ajouter Firebase à votre projet Android mais nous ne pouvons pas voir l'application recevoir des données dans la console Firebase.
Et lorsque nous lançons l'application, le journal indique:

FirebaseInitProvider: FirebaseApp initialization unsuccessful

Qu'est-ce que ça veut dire? Que faisons-nous de mal?
Je ne trouve pas cette erreur dans la documentation, ni ici dans StackOverflow.

40
Salvatorelab

Qu'est-ce que ça veut dire? Que faisons-nous de mal?

Supposerait que l'authentification n'a pas réussi.

a) les buildscriptrepositories et dependencies pour le projet niveau build.gradle:

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {

        // Android Gradle Plugin
        classpath "com.Android.tools.build:gradle:3.1.4"

        // Google Services Plugin
        classpath "com.google.gms:google-services:4.1.0"
    }
}

b) la dependencies du module niveau app/build.gradle (une version antérieure des services Google Play peut toujours être installée sur les images Android Intel x10; par exemple, 10.2.0 s'exécute sur l'émulateur x86 actuel, tandis que par exemple, 11.8.0 est exécuté mon périphérique ARM physique). référencer play-services et firebase-core inclura tout de leurs modules, à moins d’en exclure certains. update: il faut maintenant référencer toutes les bibliothèques individuellement. référencer com.google.Android.gms:play‐services et com.google.firebase:firebase-core ne fonctionne plus depuis 15.0.0.

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
    // https://developers.google.com/Android/guides/releases
    api "com.google.Android.gms:play-services-base:15.0.1"
    api "com.google.Android.gms:play-services-auth:16.0.0"
    api "com.google.Android.gms:play-services-identity:15.0.1"

    // Google Firebase
    // https://firebase.google.com/support/release-notes/Android
    api "com.google.firebase:firebase-core:16.0.1"
    api "com.google.firebase:firebase-auth:16.0.3"
    api "com.google.firebase:firebase-config:16.0.0"
    api "com.google.firebase:firebase-storage:16.0.1"
    api "com.google.firebase:firebase-database:16.0.1"
    api "com.google.firebase:firebase-messaging:17.3.0"
    api "com.google.firebase:firebase-appindexing:16.0.1"
    api "com.google.firebase:firebase-functions:16.1.0"
    api "com.google.firebase:firebase-invites:16.0.1"
    // api "com.google.firebase:firebase-crash:16.0.1"
    api "com.google.firebase:firebase-ads:15.0.1"
    api "com.google.firebase:firebase-firestore:17.0.4"
    api "com.google.firebase:firebase-perf:16.0.0"

    // the inappmessaging may cause dependency conflicts: 
    // api "com.google.firebase:firebase-inappmessaging:17.0.0"
    // api "com.google.firebase:firebase-inappmessaging-display:17.0.0"
}

c) la dernière ligne de mobile/build.gradle devrait être:

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

d) assurez-vous d'avoir les informations d'identification (téléchargées) disponibles à app/google-services.json; sur la console Firebase, il faut ajouter les deux SHA1 (ou SHA256) des hachages du débogage et les clés de version, pour que les deux versions s'authentifient correctement; une fois que tout correspond, il convient de signaler:

I/FirebaseInitProvider: FirebaseApp initialization successful

Tout est bien documenté, il suffit de consulter Configurer les services Google Play , Démarrage rapide de Firebase ou Rapport d'incident ; Je trouve cet article sur le blog Firebase plutôt utile: Organisation de vos versions d’applications Android compatibles Firebase , car il explique comment désactiver partiellement le signalement des pannes. Les notes de publication annoncent toujours les mises à jour et les modifications.

37
Martin Zeitler

Cela se produit lorsque vous n'avez pas apply plugin: 'com.google.gms.google-services' dans votre app/build.gradle. Essayez de l'ajouter.

Assurez-vous également que le SDK des services Google Play est installé dans Android SDK Manager.

17
Sayyam

La première chose que je vous conseillerais de vérifier est:

1) Avez-vous inclus le <uses-permission Android:name="Android.permission.INTERNET" /> dans votre manifeste?

3
Victor Mwenda

Assurez-vous que vous avez ajouté cette ligne au fichier de niveau d'application build.gradle 

apply plugin: 'com.google.gms.google-services'
3
HemangNirmal

Tout le problème se produit pour deux raisons:

1. Vous n'avez pas pris de permission au mainfest

<uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />
<uses-permission Android:name="Android.permission.INTERNET" />

[entrez la description de l'image ici] [1]

2. votre version de compilation a un bug - Dépendance au niveau du projet

classpath 'com.google.gms:google-services:4.1.0'

remplacer par

classpath 'com.google.gms:google-services:4.0.1'

1
Anuj Sachan

Dans mon cas, j'ai tout fait correctement à Gradle. Même s'il a montré FirebaseApp initialization unsuccessful 

J'ai ajouté com.google.Android.c2dm.permission.RECEIVE permission dans manifeste qui a résolu mon problème.

 <uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />
 <uses-permission Android:name="Android.permission.INTERNET" />
1
Jyoti JK

J'ai la même sortie Logcat.

Corrigé en mettant à jour ma Google Play Services Dependency à 9.0.0 dans mon application/build.gradle

et mise à jour

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

dans mon projet build.gradle à 3.0.0

0
RichardG

Moi aussi, je faisais face à un problème similaire. J'avais importé mon projet de développeur Google dans Firebase et effectué toutes les étapes décrites dans les instructions de l'application de studio Android et de la console Firebase, c.-à-d. En ajoutant les dépendances, le fichier google-services.json et en reconstruisant.

Il n'enverrait toujours pas de données à la console Firebase. Ainsi, tout en parcourant le logcat, Firebase n'a pas pu s'initialiser car google_app_id semblait être manquant.

Après beaucoup d'essais et d'erreurs, j'ai dû ajouter une nouvelle ressource de chaîne dans mon fichier res/values/strings.xml.

    <string name="google_app_id">YOUR_GOOGLE_APP_ID</string>

L'ID Google App est disponible dans le fichier google_services.json que vous avez téléchargé à partir de la console Firebase sous l'en-tête mobilesdk_app_id.

"client": [
    {
      "client_info": {
        "mobilesdk_app_id": "SOMETHING"
      }
    .
    .
    .

Copiez le mobilesdk_app_id et collez-le dans votre ressource chaîne dans le fichier res/values/strings.xml portant le nom google_app_id.

Reconstruisez le code et cela devrait fonctionner. :)

0
Shoeb Ahmed

Dans mon cas, j’essayais de compiler sélectivement Google play Services . Au lieu d’utiliser 

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

comme décrit à l'adresse: https://developers.google.com/Android/guides/setup#ensure_devices_have_the_google_play_services_apk

J'ai ajouté manuellement des cartes et un autre module de dépendances à partir des services Google Play en tant que 

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

Malheureusement, Firebase a cessé de fonctionner après cela.

En conséquence, j'ai dû revenir en arrière et revenir à l'utilisation 

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

au lieu de sélectivement.

0
Juan Pablo