Подтвердить что ты не робот

Как решить проблему с инициализацией API Firebase (Android + Firebase)

Недавно мне понадобилось использовать Google GCM в моем проекте. На веб-сайте говорится:

Firebase Cloud Messaging (FCM) - это новая версия GCM. Он наследует надежная и масштабируемая инфраструктура GCM, а также новые возможности! Видеть FAQ, чтобы узнать больше. Если вы интегрируете обмен сообщениями в новое приложение, начните с FCM. Пользователям GCM настоятельно рекомендуется перейти на FCM, с тем чтобы воспользоваться новыми возможностями FCM сегодня и в будущем.

Чтобы настроить новое приложение Firebase, я выполнил инструкции, представленные на официальном веб-сайте и сделал следующее:

  • Создал новое приложение Firebase в веб-консоли и получил от меня мой json - после предоставления правильного пакета моего приложения;
  • В файле gradle верхнего уровня проекта я добавил classpath 'com.google.gms:google-services:3.0.0' в разделе зависимости;
  • В моем модуле gradle я добавил: 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';

Полные gradle файлы приведены ниже:

Файл верхнего уровня gradle:

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
}

Модуль gradle файл:

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'

Когда я запускаю свое приложение, я получаю эту стек:

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)

Любая помощь в решении этой проблемы будет очень оценена! Отношения

4b9b3361

Ответ 1

Хорошо, после битвы много я нашел то, что вызывало мою проблему. В основном у меня были два модуля библиотек - это оказалось моим собственным - каждый из них импортировал разные версии com.android.support:appcompat-v7.* и google play services. Все они импортировали одну и ту же версию, и проблема исчезла.

Ответ 2

Я встретил ту же ошибку, которая была решена при обновлении firebase-core:

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

Ответ 3

Убедитесь, что все зависимости должны иметь одинаковую версию

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'
}

Ответ 4

Я столкнулся с той же проблемой, но через некоторое время Я понял, что проблема в Gradle, т.е.

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


затем я просто удалил + и заменил реальную версию, т.е.

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


тогда это начало работать

Ответ 5

Для меня совершенно несвязанный импорт вызвал эту ошибку   compile 'com.aurelhubert: ahbottomnavigation: 1.3.3' Когда я удалил его, все было в порядке

Ответ 6

В моем случае проблема возникает из-за того, что я применил плагин "com.google.gms.google-services" внутри зависимостей модулей build.grandle insteand, чтобы поместить его в конец файла.

Ответ 7

У меня была та же проблема, исправленная обновлением до 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'
    ....
}

Ответ 8

Вы можете проверить зависимости с помощью команды gradle

./gradlew app:dependencies

Как сказал Эдгар, убедитесь, что все библиотеки зависимостей имеют одну и ту же версию. Если нет, вы можете исключить эту зависимость, используя

compile('your dependency') {
    exclude group: 'lib to be removed'
}

И добавьте эту зависимость самостоятельно.

Ответ 9

В моем случае я забыл добавить это с помощью сборки уровня приложения

implementation 'com.google.firebase:firebase-messaging:9.6.0'

Итак, я получил FireBase fi rebase-api-initialization-fail

Ответ 10

добавьте compile 'com.google.android.gms:play-services:9.0.0' в свой файл build.gradle на уровне приложения

Ответ 11

Я, после борьбы всю ночь, потому что версия моих зависимостей одинакова. После добавления Firebase Analytics, когда я отредактировал код и запустил его на свое устройство, мое приложение разбилось на Отклонение повторной инициализации в ранее не пройденном классе com.google.android.gms... Мне нужно очистить проект и снова запустите, тогда он работал нормально, но снова будет разбит, если я отредактирую код.

Моя проблема вызвана "useProguard false" из следующего руководства https://developer.android.com/studio/build/shrink-code.html

    debug {
        minifyEnabled true
        useProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
                'proguard-rules.pro'
    }

но я отключил Instant Run, поэтому удалить "useProguard false" исправил мою проблему.

    debug {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
                'proguard-rules.pro'
    }

Ответ 12

Более полный ответ для новичков. @Эдгар прав, спасибо!

Ошибка: "Ошибка инициализации Firebase API" может быть найдена в logcat Android Monitor из-за несовместимой версии библиотеки. Это могут быть любые библиотеки, с помощью которых вы компилируете свое приложение в перспективе Project: перейдите по адресу: Your-app-directory/app/build.gradle

В моем случае я должен соответствовать этой версии 2 модуля, и это решило это сообщение об ошибке:

implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-appindexing:16.0.1'

Я прикрепил здесь снимок экрана, чтобы вы могли видеть все это.

enter image description here