You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android引入外部JAR编译时出现Desugar错误求助

解决Android项目编译时的:app:transformClassesWithDesugarForDebug错误

碰到这个TaskExecutionException错误,大多是引入JAR依赖后Desugar(脱糖)过程出了问题,我整理了几个实用的排查和解决步骤:

1. 确认Desugar配置是否完整

很多时候是没正确开启核心库脱糖导致的,在app模块的build.gradle(或build.gradle.kts)里检查以下配置:

android {
    compileOptions {
        // 必须开启核心库脱糖
        coreLibraryDesugaringEnabled true
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    // 添加脱糖依赖库,版本建议和你的Gradle插件匹配
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
}

如果之前没加这些配置,补上后重新同步项目试试。

2. 排查JAR依赖的兼容性

你引入的JAR可能包含Android不支持的Java特性(比如Java 9+的API),或者本身存在字节码问题:

  • 优先尝试替换JAR为官方的AAR依赖(如果有提供的话),AAR通常对Android更友好;
  • 临时移除这个JAR,重新编译项目,如果编译通过,就可以确定是这个JAR的问题——可以找该依赖的旧版本,或者查看官方文档确认它支持的Android版本;
  • 检查JAR是否包含重复的类,和项目其他依赖冲突。

3. 清理重建项目

Gradle缓存有时候会搞出奇怪的问题,试试这些操作:

  • 点击Android Studio顶部菜单栏的Build > Clean Project,完成后再点击Build > Rebuild Project
  • 手动删除项目根目录的.gradle文件夹、app模块下的build文件夹,然后点击File > Sync Project with Gradle Files重新同步。

4. 检查Gradle相关版本兼容性

Gradle插件、Build Tools和SDK版本不兼容也可能引发这类错误:

  • 尽量使用稳定版的Android Gradle插件,避免用预览版;
  • 在项目根目录的build.gradle里确认插件版本,比如:
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2' // 示例稳定版
    }
    
  • 同时确保Android SDK Build Tools是最新的稳定版,可以在SDK Manager里查看更新。

5. 查看完整错误日志

你提供的错误信息被截断了,真正的问题根源藏在Caused by开头的堆栈里。在Android Studio的Build面板中,点击错误条目展开完整日志,找到最底层的异常信息,比如某个类无法被Desugar处理,或者某个依赖缺失,这样能更精准地定位问题。

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

火山引擎 最新活动