【问题标题】:How to solve Firebase API initialization failure (Android + Firebase)如何解决 Firebase API 初始化失败(Android + Firebase)
【发布时间】:2016-09-20 16:29:30
【问题描述】:

我最近需要在我的项目中使用 Google GCM。从它的website 说:

Firebase 云消息传递 (FCM) 是 GCM 的新版本。它继承 可靠且可扩展的 GCM 基础架构,以及新功能!看 常见问题解答以了解更多信息。如果您要在新应用中集成消息传递, 从 FCM 开始。强烈建议 GCM 用户升级到 FCM, 以便从现在和未来的新 FCM 功能中受益。

为了设置新的 Firebase 应用程序,我按照official website 提供的说明进行了以下操作:

  1. 在 Web 控制台中创建了一个新的 Firebase 应用,并从那里获取了我的 json - 在提供了我的应用的正确包之后;
  2. 在顶层项目的 gradle 文件中,我在依赖项部分添加了classpath 'com.google.gms:google-services:3.0.0';
  3. 在我的模块的 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)

任何解决此问题的帮助将不胜感激! 问候

【问题讨论】:

  • 您在崩溃的设备上安装了哪个版本的 Google Play 服务?
  • 使用这个代码getPackageManager().getPackageInfo("com.google.android.gms", 0 ).versionCode; 我有这个版本:GOOGLE PLAY SERVICE DEVICE VERSION IS: 9083438. 我在 Firebase 和 Android 中创建了一个新项目,只是一个你好世界,它工作.是什么让我相信我添加的某些库正在搞砸一些事情
  • 是的,它很奇怪。您是否将您的应用程序通过 proguard(如果您不这样做,是否会发生崩溃)?
  • 是的,但我找到了问题所在。我的答案如下

标签: android google-app-engine firebase android-gradle-plugin


【解决方案1】:

好吧,经过一番挣扎,我找到了导致我问题的原因。基本上我有两个库模块——恰好是我自己的——每个都导入不同版本的com.android.support:appcompat-v7.* 和谷歌播放服务。让他们都导入相同的版本,问题就消失了。

【讨论】:

  • 谢谢。就我而言,我使用的是com.google.firebase:firebase-core:9.0.2,但使用的是com.google.android.gms:play-services-gcm:9.2.0。将 play-services-gcm 降级到 9.0.2 为我解决了这个运行时错误。
  • 如何检查哪些库模块正在导入不同的版本?
  • 如果你从 github 获取它们,你可以检查他们的 gradle 文件,否则,如果你拥有该库,请在源代码中检查它。
  • 我在 9 个导入中的 8 个中有 com.google.***:9.4.0。更改我错过的最后一个解决了它。
  • 我用的都是同一个版本,但是还是一样的错误
【解决方案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 中,即

    编译“com.android.support:support-v4:+”


    然后我只是删除了 + 并替换了实际版本,即,

    编译“com.android.support:support-v4:23.1.0”


    然后它开始工作

    【讨论】:

      【解决方案5】:

      对我来说,一个完全不相关的导入导致了这个错误 编译'com.aurelhubert:ahbottomnavigation:1.3.3' 当我删除它时,一切都很好

      【讨论】:

        【解决方案6】:

        在我的情况下,出现问题是因为我将“应用插件:'com.google.gms.google-services'”放在模块 build.grandle 的依赖项中,而不是将其放在文件末尾。

        【讨论】:

          【解决方案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
            

            正如 Edgar 所说,确保所有依赖库都具有相同的版本。 如果没有,那么您可以使用排除该依赖项

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

            并自己添加该依赖项。

            【讨论】:

              【解决方案9】:

              将compile 'com.google.android.gms:play-services:9.0.0' 添加到您的应用级 build.gradle 文件中

              【讨论】:

                【解决方案10】:

                我,经过一夜的努力,因为我的依赖项的版本是相同的。添加 Firebase Analytics 后,当我编辑代码并运行到我的设备时,我的应用程序崩溃了 Rejecting re-init on previous-failed class com.google.android.gms... 我必须清理项目并再次运行,然后它工作正常,但如果我编辑代码会再次崩溃。

                我的问题是由遵循本指南https://developer.android.com/studio/build/shrink-code.html的“useProguard false”引起的

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

                但我禁用了即时运行,所以删除“useProguard false”解决了我的问题。

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

                【讨论】:

                  【解决方案11】:

                  为新手提供更完整的答案。 @Edgar 是正确的,谢谢!

                  错误:在 Android Monitor 的 logcat 中可以找到“Firebase API 初始化失败”,这是由于库版本不兼容。它可以是您在项目透视图中编译应用程序的任何库:转到: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'
                  

                  我在此处附上屏幕截图,以便您查看所有内容。

                  【讨论】:

                    【解决方案12】:

                    在我的情况下,我忘记在 App Level 构建中添加它

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

                    所以我得到了 FireBase firebase-api-initialization-failure

                    【讨论】:

                      猜你喜欢
                      • 2019-04-23
                      • 1970-01-01
                      • 1970-01-01
                      • 2016-10-27
                      • 1970-01-01
                      • 2017-02-06
                      • 1970-01-01
                      • 2018-05-23
                      • 2021-01-23
                      相关资源
                      最近更新 更多