如何解决Android Studio启动应用时desugarDebugFileDependencies Gradle错误
Android Studio构建
Task :app:desugarDebugFileDependencies失败修复方案 - 首先修复Kotlin版本不匹配问题
根项目build.gradle中定义的ext.kotlin_version为1.5.20-RC,但实际依赖的kotlin-gradle-plugin版本为1.5.30,版本不一致会导致编译异常。统一Kotlin版本即可:buildscript { ext.kotlin_version = '1.5.30' // 修改为和插件一致的版本 repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.0.2" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // 改用变量引用 def nav_version = "2.3.5" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } } - 移除重复的DataBinding配置
app模块build.gradle中重复配置了两次DataBinding,保留buildFeatures中的配置即可,删除冗余的旧配置:// 删除这行旧配置 // dataBinding { // enabled = true // } // 仅保留以下配置 buildFeatures { viewBinding = true dataBinding true } - 清理冲突/重复依赖
- 同时依赖了支持库和AndroidX版本的multidex,删除旧的支持库依赖
implementation 'com.android.support:multidex:1.0.3',仅保留androidx.multidex依赖,同时在defaultConfig中开启multidex:defaultConfig { // 其他配置不变 multiDexEnabled true } - 删除重复引入的依赖:core-ktx、appcompat、material等库重复引入了多次,保留一个版本即可。
- 移除冲突的过时依赖:
org.apache.httpcomponents相关依赖和Android系统内置的类冲突,AGP7+默认已经禁止引入该类库,直接删除这两个依赖即可。
- 同时依赖了支持库和AndroidX版本的multidex,删除旧的支持库依赖
- 开启Core Library Desugaring配置
项目中引入了Guava、BouncyCastle等依赖Java 8+ API的三方库,未开启Desugaring配置会导致desugar任务执行失败,添加对应配置:compileOptions { coreLibraryDesugaringEnabled true // 新增这行 sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } dependencies { // 新增desugaring依赖 coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' // 其他依赖不变 } - 排查本地JAR包兼容性
项目中引入的tckk相关JAR、log4j-1.2.16.jar、ADDLTV.jar等本地包版本过老,可能存在D8编译不兼容的问题。可以先临时注释掉这些本地JAR的依赖,尝试构建,如果构建成功则逐个排查哪个包存在兼容问题,替换为适配Android环境的版本,比如log4j可以替换为Android原生适配的日志库。 - 清理缓存重建
所有配置修改完成后,依次执行:- 点击Android Studio菜单栏
File -> Invalidate Caches / Restart清理IDE缓存 - 命令行执行
./gradlew clean assembleDebug --stacktrace查看完整构建日志,若仍有报错可根据堆栈信息定位具体异常原因。
- 点击Android Studio菜单栏
内容的提问来源于stack exchange,提问作者Mustafa Maden
相关产品推荐
相关产品推荐

