You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Crashlytics Plugin 3.0.0与Data Binding循环依赖冲突问题

Firebase Crashlytics 3.0.0与Data Binding循环依赖问题解决

问题本质

升级Firebase Crashlytics Plugin到3.0.0版本后,启用Data Binding会触发构建任务的循环依赖:dataBindingGenBaseClasses任务依赖资源合并任务,而Crashlytics的injectCrashlyticsMappingFileId任务又反向依赖dataBindingGenBaseClasses,形成闭环导致构建失败。这是3.0.0版本的兼容性问题,2.9.9版本的任务依赖配置未触发该冲突。

可行解决办法

1. 强制调整任务执行顺序

通过Gradle脚本修改Crashlytics注入任务的依赖顺序,让它在Data Binding基础类生成任务完成后再执行。

  • 若使用Kotlin DSL(build.gradle.kts),添加以下代码到模块级构建脚本:
tasks.withType<com.google.firebase.crashlytics.buildtools.gradle.tasks.InjectMappingFileIdTask>().configureEach {
    mustRunAfter(tasks.withType<com.android.build.gradle.tasks.DataBindingGenBaseClassesTask>())
}
  • 若使用Groovy(build.gradle),添加:
tasks.withType(com.google.firebase.crashlytics.buildtools.gradle.tasks.InjectMappingFileIdTask).configureEach {
    mustRunAfter tasks.withType(com.android.build.gradle.tasks.DataBindingGenBaseClassesTask)
}

该配置不会修改任务的依赖关系,仅强制执行顺序,从而打破循环。

2. 临时降级插件版本

如果不需要3.0.0版本的新特性,可暂时回退到2.9.9版本,在项目根目录的构建脚本中修改插件版本:

plugins {
    id("com.google.firebase.crashlytics") version "2.9.9" apply false
}

3. 等待官方修复

这属于插件版本的兼容性Bug,Firebase团队通常会在后续迭代中修复此类任务依赖冲突,可关注Crashlytics的更新日志,待修复版本发布后再升级。

额外说明

发布资源仅包含简单的AndroidManifest.xml不影响该冲突,问题核心在于任务依赖链的逻辑配置,与资源文件的复杂度无关。

内容的提问来源于stack exchange,提问作者Martin Zeitler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 14:02:48