Manuel Schmitzberger
Manuel Schmitzberger

Reputation: 5468

Android - FirebaseApp / Firebase-Initialization is not starting

I want to implement the Firebase-Messaging plugin into my Android-App. I've started with the "quickstart-android-master/messaging"-example from github: https://github.com/firebase/quickstart-android/tree/master/messaging

This works for me! Log-Output:

D/FirebaseApp﹕ com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
D/FirebaseApp﹕ Initialized class com.google.firebase.iid.FirebaseInstanceId.
D/FirebaseApp﹕ com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization
D/FirebaseApp﹕ Initialized class com.google.android.gms.measurement.AppMeasurement.
I/FirebaseInitProvider﹕ FirebaseApp initialization successful

But if I want to implement the Plugin "com.google.firebase:firebase-messaging:9.0.2" into my app, the FirebaseApp isn't initialized! So the FirebaseApp plugin isn't starting! - No Log or token received!

I've also added apply plugin to build.gradle file in "app"-directory:

    apply plugin: 'com.android.application'

android {
  // ...
}

dependencies {
  // ...
  compile 'com.google.firebase:firebase-messaging:9.0.2'
}

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

And the google-services plugin to build.gradle in the "root" directory:

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

Problems could be:

Upvotes: 16

Views: 44211

Answers (6)

Gary Davies
Gary Davies

Reputation: 960

Another sign there are problems are logcat lines like this

FirebaseAuth: [GetAuthDomainTask] Error getting project config. Failed with INVALID_CERT_HASH 400
FirebaseAuth: [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17093 null

Check google-service.json, it should have your apk sha1 in it:

apk: sha1

SHA1: 4E:AA:54:E0:08:93:C6:CB:7B:8C:74:1E:2A:55:E7:60:XX:XX:XX:XX

google-service.json:

            "certificate_hash": "4eaa54e00893c6cb7b8c741e2a55e760a5XXXXXX"

Delete the whole Android project in firebase, add it again and add your apk sha1. If your sha1 key changes (ie new app) delete the Android project again and start fresh.

In the past, in anger, I added sha256 and also tried setting up Android Device Verification, SafetyNet etc, none of these are needed.

Upvotes: 0

NullPointerException
NullPointerException

Reputation: 4008

In my case I was missing permission <uses-permission android:name="android.permission.INTERNET"/> then reinstall the app

Upvotes: 0

Manuel Schmitzberger
Manuel Schmitzberger

Reputation: 5468

My problem was the "Manifest Merger". If I use the

xmlns:tools="http://schemas.android.com/tools"

and

tools:node="replace"

in the Application Tag of the Manifest, the FirebaseApp will not be initialized!

If you use replace attr on tools:node it will replace your lower priority declaration with the annotated one (see more here). You should use merge or merge only attributes instead.

So what I've exactly done:

This doesn't work:

<application
            android:name="xxx"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/application_name"
            android:theme="@style/Theme.TemplateStyle"
            tools:node="replace">

this works:

<application
            android:name="xxx"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/application_name"
            android:theme="@style/Theme.TemplateStyle">
            <!-- tools:node="replace"-->

If you want to overwrite or replace some attributes, use tools:replace instead!

Upvotes: 20

Ashot
Ashot

Reputation: 409

This close the issue for me:

  • implementation 'com.google.firebase:firebase-crash:16.2.1'

  • implementation 'com.google.firebase:firebase-auth:16.1.0'

Upvotes: 0

Srihari Karanth
Srihari Karanth

Reputation: 2167

In my case these permissions were missing in Android Manifest file:

<permission
        android:name="com.app.appname.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

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

Upvotes: 0

tehuelche
tehuelche

Reputation: 31

I had the same problem, add the following:

com.google.firebase:firebase-core before com.google.firebase:firebase-messaging

dependences {

    compile 'com.google.firebase:firebase-core:9.4.0'
    compile 'com.google.firebase:firebase-messaging:9.4.0'

}

Upvotes: -1

Related Questions