Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to solve Firebase API initialization failure (Android + Firebase)

I recently needed to use Google GCM in my project. From its website it is said:

Firebase Cloud Messaging (FCM) is the new version of GCM. It inherits the reliable and scalable GCM infrastructure, plus new features! See the FAQ to learn more. If you are integrating messaging in a new app, start with FCM. GCM users are strongly recommended to upgrade to FCM, in order to benefit from new FCM features today and in the future.

In order to setup a new Firebase application, I've followed the instructions provided at the official website and did the following:

  1. Created a new Firebase app in the web console and got my json from there - after providing the correct package of my app;
  2. At the top level project's gradle file, I've added classpath 'com.google.gms:google-services:3.0.0' in the dependency section;
  3. At my module's gradle file, I've added: compile 'com.google.firebase:firebase-core:9.0.0' compile 'com.google.firebase:firebase-messaging:9.0.0' and in the last line of it, I've added: apply plugin: 'com.google.gms.google-services';

Full Gradle files are provided below:

Top level gradle file:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Module's gradle file:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    dexOptions {
        javaMaxHeapSize "4g"
    }

    defaultConfig {
        applicationId "br.com.gogame"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    useLibrary  'org.apache.http.legacy'
}

dependencies {
    ...
    compile 'com.google.firebase:firebase-core:9.0.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    ...
}

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

When I start my app I get this stacktrace:

05-23 14:04:55.109 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.internal.zzqq$zzd>
05-23 14:04:55.109 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.internal.zzqq$zzd>
05-23 14:04:55.110 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.internal.zzqq$zzc>
05-23 14:04:55.110 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.internal.zzqq$zzc>
05-23 14:04:55.126 13368-13368/br.com.gogame E/FirebaseApp: 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)
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
                                                                at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
                                                                at android.content.ContentProvider.attachInfo(ContentProvider.java:1748)
                                                                at android.content.ContentProvider.attachInfo(ContentProvider.java:1723)
                                                                at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                at android.app.ActivityThread.installProvider(ActivityThread.java:5174)
                                                                at android.app.ActivityThread.installContentProviders(ActivityThread.java:4769)
                                                                at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4709)
                                                                at android.app.ActivityThread.-wrap1(ActivityThread.java)
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415)
                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                at android.os.Looper.loop(Looper.java:148)
                                                                at android.app.ActivityThread.main(ActivityThread.java:5443)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
                                                             Caused by: java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.android.gms.common.internal.zzx' appears in /data/app/br.com.gogame-2/base.apk:classes26.dex)
                                                                at com.google.android.gms.measurement.internal.zzt.zzaU(Unknown Source)
                                                                at com.google.android.gms.measurement.AppMeasurement.getInstance(Unknown Source)
                                                                at java.lang.reflect.Method.invoke(Native Method) 
                                                                at com.google.firebase.FirebaseApp.zza(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.zzbu(Unknown Source) 
                                                                at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
                                                                at android.content.ContentProvider.attachInfo(ContentProvider.java:1748) 
                                                                at android.content.ContentProvider.attachInfo(ContentProvider.java:1723) 
                                                                at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
                                                                at android.app.ActivityThread.installProvider(ActivityThread.java:5174) 
                                                                at android.app.ActivityThread.installContentProviders(ActivityThread.java:4769) 
                                                                at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4709) 
                                                                at android.app.ActivityThread.-wrap1(ActivityThread.java) 
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                at android.os.Looper.loop(Looper.java:148) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:5443) 
                                                                at java.lang.reflect.Method.invoke(Native Method) 
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
05-23 14:04:55.131 13368-13368/br.com.gogame I/FirebaseInitProvider: FirebaseApp initialization successful
05-23 14:04:55.133 13368-13368/br.com.gogame E/AndroidRuntime: FATAL EXCEPTION: main
                                                               Process: br.com.gogame, PID: 13368
                                                               java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.android.gms.common.internal.zzx' appears in /data/app/br.com.gogame-2/base.apk:classes26.dex)
                                                                   at com.google.android.gms.measurement.internal.zzt.zzaU(Unknown Source)
                                                                   at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
                                                                   at android.content.ContentProvider.attachInfo(ContentProvider.java:1748)
                                                                   at android.content.ContentProvider.attachInfo(ContentProvider.java:1723)
                                                                   at android.app.ActivityThread.installProvider(ActivityThread.java:5174)
                                                                   at android.app.ActivityThread.installContentProviders(ActivityThread.java:4769)
                                                                   at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4709)
                                                                   at android.app.ActivityThread.-wrap1(ActivityThread.java)
                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415)
                                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                   at android.os.Looper.loop(Looper.java:148)
                                                                   at android.app.ActivityThread.main(ActivityThread.java:5443)
                                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

Any help solving this problem will be very appreciated! Regards

like image 967
E. Fernandes Avatar asked May 23 '16 17:05

E. Fernandes


7 Answers

Well, after struggle a lot I found what was causing my problem. Basically I had two libraries modules - that happened to be of my own - each one of them importing different versions of com.android.support:appcompat-v7.* and google play services. Made all of them import the same version and problem is gone.

like image 90
E. Fernandes Avatar answered Sep 28 '22 09:09

E. Fernandes


I met the same error, solved by upgrade firebase-core:

dependencies {    
    compile 'com.google.firebase:firebase-core:9.0.2'
}
like image 25
scoding Avatar answered Sep 28 '22 09:09

scoding


Care to see that all the dependencies should have same version

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
    {
      exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation 'com.android.support:appcompat-v7:25.2.0'
    implementation 'com.android.support:design:25.2.0'
    implementation 'com.android.support:support-v4:25.2.0'
    implementation 'com.google.firebase:firebase-auth:10.0.1'
    implementation 'com.android.support:cardview-v7:25.2.0'
    implementation 'com.google.firebase:firebase-database:10.0.1'
    testCompile 'junit:junit:4.12'
}
like image 32
Harpreet Singh Avatar answered Sep 28 '22 11:09

Harpreet Singh


I faced the Same Issue, but after some r & d and I came to known the problem was in Gradle i.e,

compile "com.android.support:support-v4:+"


then I just removed the + and replaced actual version ie,

compile "com.android.support:support-v4:23.1.0"


then it started working

like image 25
Sunil KV Avatar answered Sep 28 '22 09:09

Sunil KV


For me a completely unrelated import caused this error compile 'com.aurelhubert:ahbottomnavigation:1.3.3' When I removed it everything was fine

like image 36
Jaad Chacra Avatar answered Sep 28 '22 10:09

Jaad Chacra


In my case, the problem occurs because i had put "apply plugin: 'com.google.gms.google-services'" inside the dependencies of the modules build.grandle insteand of putting it at the end of the file.

like image 45
TmCrafz Avatar answered Sep 28 '22 09:09

TmCrafz


I had the same issue, fixed by upgrading to play-services-auth:10.0.1:

dependencies {
    ......
    //implementation 'com.google.android.gms:play-services-auth:9.0.0'
    implementation 'com.google.android.gms:play-services-auth:10.0.1'
    ....
}
like image 25
DàChún Avatar answered Sep 28 '22 10:09

DàChún