使用.xml代替google_services.json时,Gradle构建失败

问题描述

我正在设置Firebase Crashlytics。当我使用google_services.json时,它可以正常工作。但是由于我们有几个构建变体,所以我更喜欢使用.xml,因此我可以在控制台上创建2个应用程序,在项目中创建2个文件:

-src/main/res/values/google_services.xml (for all builds,corresponds to test app at firebase)
-src/release/res/values/google_services.xml (for prod-release build)

我还删除了应用插件:“ com.google.gms.google-services”

但是我的构建无法完成所有发布任务:

assembleTestRelease
assembleStageRelease

原因在

minifyEnabled true
shrinkResources true

在Firebase Crashlytic(与Fabric)上进行迁移之前,它运行良好。

错误:

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:uploadCrashlyticsMappingFileTestRelease'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
    ...
Caused by: org.gradle.api.GradleException: Crashlytics could not find the resource file generated by Google Services. You may need to execute the :process<Variant>GoogleServices Task. Please check your Firebase project configuration (https://firebase.google.com/docs/android/setup). 
    at com.google.firebase.crashlytics.buildtools.gradle.ProjectVariantState.getGoogleAppId(ProjectVariantState.groovy:195)
    ... 35 more

解决方法

您应该能够使用以下值成功重新创建google services xml文件:

google_app_id:

{YOUR_CLIENT}/client_info/mobilesdk_app_id

gcm_defaultSenderId:

project_info/project_number

default_web_client_id:

{YOUR_CLIENT}/oauth_client/client_id (client_type == 3)

ga_trackingId:

{YOUR_CLIENT}/services/analytics-service/analytics_property/tracking_id

firebase_database_url:

project_info/firebase_url

google_api_key:

{YOUR_CLIENT}/api_key/current_key

google_crash_reporting_api_key:

{YOUR_CLIENT}/api_key/current_key

project_id:

project_info/project_id

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...