如何解决Android编译错误:':app:checkDebugDuplicateClasses'任务执行失败
这是典型的DataBinding依赖版本冲突问题,新旧版本的DataBinding库包含重复类,导致编译任务checkDebugDuplicateClasses失败。以下是针对性的解决步骤:
统一DataBinding依赖版本
项目中同时存在8.2.1和3.2.0-alpha11两个版本的DataBinding库,是冲突的核心原因。建议在项目根目录的build.gradle.kts中统一管理版本:buildscript { ext { databindingVersion = "8.2.1" // 使用与AGP匹配的稳定版本 } }然后在模块的
build.gradle.kts中,所有DataBinding相关依赖都引用这个统一版本:dependencies { implementation("androidx.databinding:databinding-runtime:$databindingVersion") // 其他如baseLibrary等DataBinding依赖也使用该版本 }排查并排除冲突的旧依赖
用Gradle依赖分析命令定位引入旧版本DataBinding的依赖:./gradlew app:dependencies在输出结果中找到包含
androidx.databinding:library:3.2.0-alpha11的依赖项,然后在模块的build.gradle.kts中排除该冲突依赖:implementation("冲突依赖的完整坐标") { exclude(group = "androidx.databinding", module = "library") exclude(group = "androidx.databinding", module = "baseLibrary") }匹配AGP与DataBinding版本
DataBinding版本必须和Android Gradle Plugin(AGP)版本保持一致,比如AGP 8.2.x对应DataBinding 8.2.x。检查项目根build.gradle.kts中的AGP版本:plugins { id("com.android.application") version "8.2.1" apply false id("org.jetbrains.kotlin.android") version "1.9.20" apply false }清理缓存并重新构建
执行命令清理Gradle缓存,避免旧缓存导致的问题:./gradlew clean ./gradlew build --refresh-dependencies也可以手动删除项目根目录的
.gradle文件夹和模块下的build文件夹后,重新执行构建。确认kapt配置正确性
确保模块的build.gradle.kts中正确启用DataBinding和kapt插件:plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-kapt") } android { buildFeatures { dataBinding = true } }
内容的提问来源于stack exchange,提问作者Andrew Driscoll

