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

Flutter集成firebase_core 3.1.0时Android端编译重复类报错

解决Flutter中Kotlin标准库重复类导致的Android编译失败问题

问题场景

使用Android Studio开发Flutter项目,通过flutter pub add firebase_core安装firebase_core 3.1.0后,Android调试编译失败,触发CheckDuplicateClasses任务错误,提示多个Kotlin类在不同版本的标准库中重复存在(kotlin-stdlib:1.8.22与kotlin-stdlib-jdk7/jdk8:1.7.10),但Chrome调试无异常。

核心原因

项目依赖中同时引入了版本不一致的Kotlin标准库:高版本的kotlin-stdlib和低版本的kotlin-stdlib-jdk7/jdk8扩展库,两者包含重复类,引发编译冲突。Firebase相关依赖可能拉取了高版本Kotlin,而本地项目配置的低版本扩展库与之冲突。

解决方案

1. 强制统一所有依赖的Kotlin标准库版本

在项目根目录的build.gradle(非app模块下的文件)中添加版本强制规则,确保所有依赖使用同一版本的Kotlin库:

subprojects {
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib:1.8.22"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22"
        }
    }
}

2. 同步Kotlin插件版本

打开Android Studio的File > Project Structure > Project,将Kotlin Plugin版本设置为与上述强制版本一致(如1.8.22),点击Apply同步项目。

3. 使用Firebase BOM统一版本(推荐)

通过Firebase BOM统一管理所有Firebase组件版本,避免版本冲突。在android/app/build.gradle的dependencies块中添加:

dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.7.0')
    implementation 'com.google.firebase:firebase-core'
    // 其他Firebase依赖无需指定版本,由BOM自动管理
}

4. 清理缓存并重编译

执行以下命令清理Flutter和Gradle缓存,重新拉取依赖编译:

flutter clean
flutter pub get
./gradlew clean build --refresh-dependencies

为什么Chrome调试无异常?

Web端依赖处理逻辑与Android端不同,Web环境不会引入Android平台的Kotlin标准库,因此不存在类重复冲突问题。

内容的提问来源于stack exchange,提问作者Gökhan Erkul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:54:58