Monday, October 17, 2016

[Android][Firebase][Resolved] Firebase API initialization failure.

During compiling an Android project with firebase, get an "Firebase API initialization failure" error,  the java.lang.reflect.InvocationTargetException.

Full error message :
10-19 03:14:36.911 3039-3039/? E/memtrack: Couldn't load memtrack module (No such file or directory)
10-19 03:14:36.911 3039-3039/? E/android.os.Debug: failed to load memtrack module: -2
10-19 03:14:38.435 3071-3071/? E/memtrack: Couldn't load memtrack module (No such file or directory)
10-19 03:14:38.435 3071-3071/? E/android.os.Debug: failed to load memtrack module: -2
10-19 03:14:38.536 3084-3084/? A/FirebaseApp: Firebase API initialization failure.
                                              java.lang.reflect.InvocationTargetException
                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                  at java.lang.reflect.Method.invoke(Method.java:372)
                                                  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:1696)
                                                  at android.content.ContentProvider.attachInfo(ContentProvider.java:1671)
                                                  at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                  at android.app.ActivityThread.installProvider(ActivityThread.java:4999)
                                                  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4594)
                                                  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4534)
                                                  at android.app.ActivityThread.access$1500(ActivityThread.java:151)
                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
                                                  at android.os.Handler.dispatchMessage(Handler.java:102)
                                                  at android.os.Looper.loop(Looper.java:135)
                                                  at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                  at java.lang.reflect.Method.invoke(Method.java:372)
                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                                               Caused by: java.lang.IncompatibleClassChangeError: The method 'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' was expected to be of type virtual but instead was found to be of type direct (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
                                                  at com.google.firebase.iid.zzg.zzeC(Unknown Source)
                                                  at com.google.firebase.iid.zzg.<init>(Unknown Source)
                                                  at com.google.firebase.iid.zzg.<init>(Unknown Source)
                                                  at com.google.firebase.iid.zzd.zzb(Unknown Source)
                                                  at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                  at java.lang.reflect.Method.invoke(Method.java:372)
                                                  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:1696)
                                                  at android.content.ContentProvider.attachInfo(ContentProvider.java:1671)
                                                  at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                  at android.app.ActivityThread.installProvider(ActivityThread.java:4999)
                                                  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4594)
                                                  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4534)
                                                  at android.app.ActivityThread.access$1500(ActivityThread.java:151)
                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
                                                  at android.os.Handler.dispatchMessage(Handler.java:102)
                                                  at android.os.Looper.loop(Looper.java:135)
                                                  at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                  at java.lang.reflect.Method.invoke(Method.java:372)
                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
10-19 03:14:38.636 3084-3084/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                 Process: com.firebase.pushnotification, PID: 3084
                                                 java.lang.IncompatibleClassChangeError: The method 'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' was expected to be of type virtual but instead was found to be of type direct (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
                                                     at com.google.firebase.iid.zzg.zzeC(Unknown Source)
                                                     at com.google.firebase.iid.zzg.<init>(Unknown Source)
                                                     at com.google.firebase.iid.zzg.<init>(Unknown Source)
                                                     at com.google.firebase.iid.zzd.zzb(Unknown Source)
                                                     at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
                                                     at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
                                                     at com.google.firebase.messaging.FirebaseMessaging.getInstance(Unknown Source)
                                                     at com.firebase.pushnotification.MainActivity.onCreate(MainActivity.java:16)
                                                     at android.app.Activity.performCreate(Activity.java:5990)
                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
                                                     at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:372)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
10-19 03:14:38.693 708-708/? E/EGL_emulation: tid 708: eglCreateSyncKHR(1209): error 0x3004 (EGL_BAD_ATTRIBUTE)
According to samtstern in github.com, trying to update your dependency from compile 'com.google.firebase:firebase-messaging:9.0.0' to compile 'com.google.firebase:firebase-messaging:9.0.2' can fix this. And i tried it works like a claim:

my module/build.gradle
apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.firebase.pushnotification"
        minSdkVersion 19
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.1.1'

    apply plugin: 'eclipse'
    //compile 'com.google.firebase:firebase-messaging:9.0.0'
    compile 'com.google.firebase:firebase-messaging:9.0.2'
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
}

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

Other files in my testing project for your reference:
my project/build.gradle
 // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        classpath 'com.google.gms:google-services:3.0.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
 Reference:
https://github.com/firebase/quickstart-android/issues/24

No comments :

Post a Comment