添加Firebase Crashlytics时遭遇Gradle ProjectConfigurationException构建错误
Firebase Crashlytics 集成后 Gradle 构建失败解决方案
我帮你分析下这个问题——你在演示项目里成功跑通了Firebase Crashlytics,但迁移到正在开发的项目时遇到了Gradle配置异常,报错信息如下:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'. at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:94) at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:89) at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:70) at org.gradle.configuration.project.LifecycleProjectEvaluator.access$100(LifecycleProjectEvaluator.java:34) at org.gradle.configuration.project.LifecycleProjectEvaluator$ConfigureProject.run(LifecycleProjectEvaluator.java:110) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50) at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:666) at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:135) at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35) at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:62) at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38) at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher.java:249) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.initialization.DefaultGradleLauncher.configureBuild(DefaultGradleLauncher.java:167) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:126) at org.gradle.initialization.DefaultGradleLauncher.getConfiguredBuild(DefaultGradleLauncher.java:104) at org.gradle.internal.invocation.GradleBuildController$2.call(GradleBuildController.java:87) at org.gradle.internal.invocation.GradleBuildController$2.call(GradleBuildController.java:84) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152) at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100) at org.gradle.internal.invocation.GradleBuildController.configure(GradleBuildController.java:84) at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:64) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40) at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30) at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39) at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25) at org.gradle.tooling.internal.provider.ContinuousBuildActionE
这个ProjectConfigurationException一般是Gradle版本兼容问题、配置步骤遗漏,或者依赖冲突导致的。结合你演示项目成功的情况,大概率是目标项目的Gradle配置和演示项目有差异,下面是几个针对性的排查步骤:
1. 核对Gradle插件版本兼容性
这是最常见的坑,一定要确保Project级和Module级的插件版本匹配,且和Gradle本身版本兼容:
- 打开根目录的
build.gradle,检查这两个插件的版本(建议用Firebase官网推荐的最新兼容版本):buildscript { dependencies { classpath 'com.google.gms:google-services:4.4.1' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' } } - 再检查
gradle-wrapper.properties里的Gradle版本,比如用上面的插件的话,Gradle建议7.0以上:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
2. 验证App级build.gradle的配置完整性
确保你没有漏掉任何必要的配置步骤:
- 确认Module级
build.gradle顶部已经应用了所有需要的插件:plugins { id 'com.android.application' id 'com.google.gms.google-services' id 'com.google.firebase.crashlytics' } - 检查Crashlytics的依赖是否正确添加:
dependencies { implementation 'com.google.firebase:firebase-crashlytics:18.6.2' // 可选但推荐:搭配Firebase Analytics使用 implementation 'com.google.firebase:firebase-analytics:21.3.0' }
3. 清理缓存并重新构建
有时候缓存会导致奇怪的问题,先清掉再试:
- 执行命令行清理:
./gradlew clean ./gradlew build --refresh-dependencies - 或者在Android Studio里点击
File > Sync Project with Gradle Files,然后重新构建项目。
4. 排查依赖冲突
如果项目里有其他Firebase或Google服务依赖,可能会出现版本冲突:
- 用命令查看依赖树,找冲突的依赖:
./gradlew app:dependencies - 如果发现冲突,可以强制统一版本,比如在Module级
build.gradle里添加:configurations.all { resolutionStrategy.force 'com.google.firebase:firebase-crashlytics:18.6.2' resolutionStrategy.force 'com.google.gms:google-services:4.4.1' }
5. 检查google-services.json文件
别用演示项目的配置文件!确保目标项目的app目录下,放的是从Firebase控制台下载的、对应当前项目包名的google-services.json。
如果以上步骤都试过还是报错,建议查看完整的报错日志(你的日志被截断了),通常在ProjectConfigurationException下面会有更具体的原因,比如某个依赖找不到、配置语法错误等,根据具体错误再针对性解决会更高效。
内容的提问来源于stack exchange,提问作者Chathuranga Shan
相关产品推荐
相关产品推荐

