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

Gradle添加Jackson依赖后真机运行出现javax.activation重复类报错

重复类构建报错解决方案

根本原因

你引入的 com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.10.1 依赖会自动传递引入 jakarta.activation:jakarta.activation-api:1.2.1 组件,和项目中已存在的旧版 activation.jar 存在完全重复的 javax.activation 包下类。普通编译阶段不会校验类重复,打包运行到设备执行Dex合并时会检测重复类,因此触发构建失败。

解决方法

方法1:排除jackson组件传递的activation依赖(最常用)

修改你的依赖配置,手动排除jackson-dataformat-xml传递引入的jakarta.activation-api即可:

implementation 'com.fasterxml.jackson.core:jackson-core:2.10.1'
implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.10.1') {
    // 排除重复的jakarta.activation依赖
    exclude group: 'jakarta.activation', module: 'jakarta.activation-api'
}

方法2:移除项目中旧的activation.jar

如果你的项目本身没有直接依赖旧版activation.jar的逻辑,可以直接删除libs目录下的activation.jar,保留jackson传递引入的jakarta.activation-api依赖即可解决冲突。如果旧版activation是其他第三方依赖传递引入的,可以对应给该依赖添加exclude规则排除javax.activation:activation。

方法3:全局配置排除冲突依赖

如果上述方法不生效,可以在项目module级build.gradle文件中添加全局排除配置:

// 放在android {} 块同级位置
configurations {
    // 全局排除所有依赖引入的jakarta.activation-api
    all*.exclude group: 'jakarta.activation', module: 'jakarta.activation-api'
    // 如果你选择保留jakarta.activation-api、删除旧版activation,就换成下面这行
    // all*.exclude group: 'javax.activation', module: 'activation'
}

验证操作

修改配置后点击Android Studio右上角Gradle同步按钮,执行Build -> Clean Project清理旧的构建缓存,再重新运行项目到设备即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 02:39:03