FirebaseInitProvider: FirebaseApp initialization u

2019-01-08 22:44发布

问题:

We have followed the Add Firebase to your Android Project but we can't see the app receiving data in the Firebase Console.
And when we launch the app, the log says:

FirebaseInitProvider: FirebaseApp initialization unsuccessful

What does this mean? What are we doing wrong?
I can't find this error in the docs, nor here in StackOverflow.

回答1:

What does this mean? What are we doing wrong?

Would assume, that the authentication did not succeed.

a) the buildscript repositories and dependencies for the project level 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) the dependencies for the module level app/build.gradle (the Android Intel x86 images may still have a previous version of the Google Play Services installed, eg. 10.2.0 runs on the current x86 emulator, while eg. 11.8.0 runs on my physical ARM device). referencing play-services and firebase-core will include all of their modules, unless excluding some them. update: one has to reference all the libraries individually now. referencing com.google.android.gms:play‐services and com.google.firebase:firebase-core does not work anymore since 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) the bottom line of mobile/build.gradle should be:

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

d) make sure to have the (downloaded) credentials available at app/google-services.json; on the Firebase Console, one has to add both SHA1 (or SHA256) hashes, of the debug and the release keys, in order to have both builds authenticating properly; once it all matches, it should report:

I/FirebaseInitProvider: FirebaseApp initialization successful

It's all well documented, just see Setup Google Play Services, Firebase Quickstart or Crash Reporting; while I find this article on the Firebase Blog quite useful: Organizing your Firebase-enabled Android app builds, because it explains how to partially mute the crash-reporting. The release notes always announce the updates & changes.



回答2:

It happens when you dont have apply plugin: 'com.google.gms.google-services' in your app/build.gradle. Try adding it.

Also make sure you have Google Play services SDK installed in Android SDK Manager.



回答3:

The first thing I would advice you to check on is:

1) Have you included the <uses-permission android:name="android.permission.INTERNET" /> in your Manifest ?



回答4:

Make sure you have added this line to App level build.gradle file

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


回答5:

In my case, I did all the things in Gradle properly. Even though it showed FirebaseApp initialization unsuccessful

I added com.google.android.c2dm.permission.RECEIVE permission in manifest which solved my problem.

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


回答6:

In my case I was trying to Selectively compile Google play Services. Instead of using

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

as described at: https://developers.google.com/android/guides/setup#ensure_devices_have_the_google_play_services_apk

I manually added maps and some other dependencies module from Google Play Services as

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

Unfourtunately Firebase stoped working after this.

As a result I had to rollback and return to use

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

instead of selectively.



回答7:

I got the same Logcat output.

Fixed it by updating my Google Play Services Dependency to 9.0.0 in my app/build.gradle

and updating

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

in my project build.gradle to 3.0.0