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

编译时出现Program type already present: org.simpleframework.xml.Attribute错误求助

解决Android编译错误:Program type already present: org.simpleframework.xml.Attribute

这个错误我之前也碰到过,本质是项目中重复引入了org.simpleframework.xml相关的类,导致编译时字节码冲突。结合你的依赖配置来看,大概率是主项目和:CouponingModule模块同时依赖了Simple XML库,或者某个第三方依赖间接引入了它。下面是具体的排查和解决步骤:

1. 先找出重复依赖的来源

首先执行Gradle命令查看完整的依赖树,定位重复引入的位置:

# Mac/Linux
./gradlew app:dependencies

# Windows
gradlew.bat app:dependencies

在输出结果中搜索org.simpleframework,你会看到除了你自己声明的simple-xml:2.7.1之外,还有没有其他模块(比如:CouponingModule)或者第三方依赖引入的同库不同版本/相同版本的条目。

2. 根据排查结果解决冲突

情况一::CouponingModule模块也依赖了Simple XML

如果是模块里也引入了这个库,你可以在主项目的模块依赖中排除掉模块带来的Simple XML,确保只使用主项目中统一的版本:

implementation project(':CouponingModule') {
    exclude group: 'org.simpleframework', module: 'simple-xml'
}

或者更规范的方式:在:CouponingModule的build.gradle中,使用和主项目一致的Simple XML依赖配置(同样排除stax和xpp3),保持版本统一。

情况二:第三方依赖间接引入了Simple XML

如果是某个第三方依赖(比如你配置中的Fresco、Play Services等)间接引入了该库,在对应的依赖项中添加排除规则即可,就像你排除stax-api那样:

implementation '第三方依赖的坐标' {
    exclude group: 'org.simpleframework', module: 'simple-xml'
}

3. 额外检查项

  • 确认你libs目录下的jar包(activation.jar、additionnal.jar、mail.jar)没有包含Simple XML相关的类,避免遗漏的本地jar冲突。
  • 尽量统一项目中所有依赖的版本,减少版本不一致带来的编译冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:17:32