Kotlin 依赖冲突导致 Duplicate Class 错误的完整解决方案

花韻仙語

花韻仙語

2026-07-11

274人浏览

原创

Kotlin 依赖冲突导致 Duplicate Class 错误的完整解决方案

本文详解 android 项目中因 kotlin 标准库版本不一致(如同时引入 kotlin-stdlib 1.8.10 和 kotlin-stdlib-jdk7/8 1.7.20)引发的 duplicate class 编译错误,并提供精准、可复现的 gradle 配置修复方案。

本文详解 android 项目中因 kotlin 标准库版本不一致(如同时引入 kotlin-stdlib 1.8.10 和 kotlin-stdlib-jdk7/8 1.7.20)引发的 duplicate class 编译错误,并提供精准、可复现的 gradle 配置修复方案。

在构建基于 Firebase Auth 与 Realtime Database 的多 Activity Kotlin 应用时,你可能突然遭遇大量 Duplicate class kotlin.xxx 编译错误——这并非代码逻辑问题,而是典型的 Kotlin 标准库依赖冲突:不同第三方库(尤其是 Firebase BOM、Compose BOM 或旧版 SDK)各自传递性地引入了不同版本的 kotlin-stdlib 及其 JDK 扩展模块(如 kotlin-stdlib-jdk7、kotlin-stdlib-jdk8),而这些模块在 Kotlin 1.7+ 后已逐步被合并进主 kotlin-stdlib,导致类重复定义。

从你的错误日志可见,jetified-kotlin-stdlib-1.8.10 与 jetified-kotlin-stdlib-jdk8-1.7.20 等共存,说明项目中存在跨版本标准库混用。虽然启用 android.enableJetifier=true(现已默认开启)可帮助迁移支持库,但它无法解决 Kotlin 自身的版本对齐问题。

根本解决方案:强制统一 Kotlin 标准库版本
在 app/build.gradle 文件的 dependencies 块下方(或 android 块外同级位置),添加以下全局依赖解析策略:

configurations.all {
    resolutionStrategy {
        eachDependency {
            if (requested.group == "org.jetbrains.kotlin" && 
                requested.name.startsWith("kotlin-stdlib")) {
                useVersion("1.8.10") // ✅ 与你当前主版本保持一致(或升级至 1.9.20)
            }
        }
    }
}

? 为什么选 1.8.10?
因为错误日志中 jetified-kotlin-stdlib-1.8.10 是较新版本,而 kotlin-stdlib-jdk7/8-1.7.20 是旧版扩展包。强制所有 kotlin-stdlib-* 依赖对齐到 1.8.10,可让 Gradle 自动排除冗余的旧版 JDK 模块(它们在 1.8+ 中已内置),彻底消除类重复。

? 关键注意事项:

MindShow
MindShow

MindShow官网 | AI生成PPT,快速演示你的想法

下载
  • ✅ 此配置需置于 configurations.all { ... } 块中,作用于所有配置(implementation、api、runtimeOnly 等),确保无遗漏;
  • ⚠️ 避免手动添加 kotlin-stdlib-jdk7 或 kotlin-stdlib-jdk8 —— Kotlin 1.8+ 不再推荐单独引入,应仅依赖 kotlin-stdlib;
  • ? 若后续升级 Kotlin 插件(如 org.jetbrains.kotlin.android),请同步更新 useVersion(...) 中的版本号,保持一致性;
  • ? 清理并重建:执行 ./gradlew clean + Build > Rebuild Project,避免缓存干扰。

? 进阶建议:

  • 在 gradle.properties 中定义 Kotlin 版本常量,便于集中管理:
    kotlinVersion=1.8.10

    然后在 build.gradle 中引用:useVersion(kotlinVersion);

  • 检查 gradle/dependency-graph(通过 ./gradlew app:dependencies --configuration implementation)确认是否仍有残留的旧版 kotlin-stdlib-*;
  • Firebase BOM(com.google.firebase:firebase-bom:32.0.0)和 Compose BOM(androidx.compose:compose-bom:2022.10.00)本身不强制 Kotlin 版本,因此必须由你主动统一。

该方案已在真实多模块、Firebase + Compose 项目中验证有效,无需移除任何功能依赖,安全、稳定且符合现代 Android 构建最佳实践。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Kotlin协程编程与Spring Boot集成实践
Kotlin协程编程与Spring Boot集成实践

本专题围绕 Kotlin 协程机制展开,深入讲解挂起函数、协程作用域、结构化并发与异常处理机制,并结合 Spring Boot 展示协程在后端开发中的实际应用。内容涵盖异步接口设计、数据库调用优化、线程资源管理以及性能调优策略,帮助开发者构建更加简洁高效的 Kotlin 后端服务架构。

2026.02.12

227

18

Java Kotlin协程与异步编程实战
Java Kotlin协程与异步编程实战

本专题围绕 Kotlin 协程与异步编程展开,讲解挂起函数、协程作用域、异步任务调度及并发控制方法。通过实际项目案例,帮助开发者提升后端服务性能,实现高效异步任务处理与稳定性保障。

2026.04.13

53

16

Kotlin Android开发教程大全
Kotlin Android开发教程大全

系统讲解 Google 官方推荐的 Android 开发首选语言 Kotlin 的核心知识与工程实践,涵盖 Kotlin 简洁语法(空安全/数据类/扩展函数/解构声明/作用域函数)与 Java 互操作、集合操作与函数式编程、协程(Coroutines)异步编程(suspend/launch/async/Flow)、Jetpack Compose 声明式 UI 开发(状态管理/组合函数/导航/动画)、MVVM / MVI 架构设计与 Vi

2026.06.03

81

19

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

2024.01.03

1724

7

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

2025.12.06

182

9

li是什么元素
li是什么元素

li是HTML标记语言中的一个元素,用于创建列表。li代表列表项,它是ul或ol的子元素,li标签的作用是定义列表中的每个项目。本专题为大家li元素相关的各种文章、以及下载和课程。

2023.08.03

596

5

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

8

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

5

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

7

14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习