Firebase API 初始化在启动时失败



在应用程序启动时,以下内容将打印到控制台:

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)
   //..
Caused by: java.lang.IllegalAccessError: Method 'void android.support.v4.content.ContextCompat.<init>()' is inaccessible to class 'com.google.firebase.iid.zzg'

Firebase 设置已按照以下说明完成:

  1. classpath 'com.google.gms:google-services:3.1.0'已添加到顶级build.gradle
  2. apply plugin: 'com.google.gms.google-services'已添加到应用级别 build.gradle

运行./gradlew app:dependencies,我可以看到以下输出:

com.google.firebase:firebase-core:9.0.0
     --- com.google.firebase:firebase-analytics:9.0.0
          +--- com.google.android.gms:play-services-basement:9.0.0
          |    --- com.android.support:support-v4:23.0.0 -> 25.3.1 (*)
          +--- com.google.firebase:firebase-common:9.0.0
          |    +--- com.google.android.gms:play-services-basement:9.0.0 (*)
          |    --- com.google.android.gms:play-services-tasks:9.0.0
          |         --- com.google.android.gms:play-services-basement:9.0.0 (*)
          --- com.google.firebase:firebase-analytics-impl:9.0.0
               +--- com.google.android.gms:play-services-base:9.0.0
               |    +--- com.google.android.gms:play-services-basement:9.0.0 (*)
               |    +--- com.google.firebase:firebase-common:9.0.0 (*)
               |    --- com.google.android.gms:play-services-tasks:9.0.0 (*)
               +--- com.google.android.gms:play-services-basement:9.0.0 (*)
               +--- com.google.firebase:firebase-iid:9.0.0
               |    +--- com.google.android.gms:play-services-basement:9.0.0 (*)
               |    --- com.google.firebase:firebase-common:9.0.0 (*)
               --- com.google.firebase:firebase-common:9.0.0 (*)
也许

这是问题的一部分,也许不是,但我觉得很奇怪,最新版本的插件包含旧版本的 Firebase ( 9.0.0 ( 而不是 11.0.1 .

此外,正如错误所述,该问题是由以下原因引起的:

java.lang.IllegalAccessError: Method 'void android.support.v4.content.ContextCompat.<init>()'

这似乎表明 v4 支持库可能与该问题相关。

是什么导致了这些问题,解决方案是什么?

当我运行依赖项任务时,没有在应用程序模块build.gradle中将Google Play或Firebase库指定为依赖项,我在生成的输出顶部看到以下警告消息:

google-services plugin could not detect any version for com.google.android.gms or com.google.firebase, default version: 9.0.0 will be used.
please apply google-services plugin at the bottom of the build file.

向右滚动该消息以查看:default version: 9.0.0 will be used

插件必须在build.gradle中的依赖项块之后应用的原因在于,它扫描库列表以确定用于处理的版本。 您的模块依赖项必须至少包含一个 Firebase 或 Google Play 库,以便插件可以选择版本号。

您在帖子的评论中指出,不需要明确取决于核心。 这是在文档中的某个地方吗? 查看每个 Firebase API(分析、实时数据库、存储、崩溃报告等(的设置指南,每个 API 都包含一个步骤,用于将该 API 的库添加到依赖项中。

相关内容

  • 没有找到相关文章

最新更新