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

如何解决Android项目中org.simpleframework.xml类重复冲突问题?

解决SimpleXML类重复冲突的Gradle配置方法

问题根因

你自行开发的poslib库已经把SimpleXML相关类打包进了aar,同时主项目通过retrofit2:converter-simplexml又引入了官方的SimpleXML依赖,导致两个模块里出现完全相同的类,触发Duplicate Class错误。

具体解决步骤

方案1:排除Retrofit转换器自带的SimpleXML依赖

直接修改主项目的Gradle依赖配置,在引入converter-simplexml时,把它依赖的官方SimpleXML模块排除掉,这样就只会用poslib里打包的版本:

implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
// 给converter-simplexml加上exclude配置
implementation ('com.squareup.retrofit2:converter-simplexml:2.7.1') {
    exclude group: 'org.simpleframework', module: 'simple-xml'
}
// 你的自定义库依赖,比如本地模块或者远程aar
implementation project(':poslib')

方案2:排除自定义库中的SimpleXML依赖(如果库未打包依赖)

如果你的poslib没有把SimpleXML打包进aar,只是声明了依赖,可以在引入poslib时排除它的SimpleXML依赖,改用主项目的版本:

// 引入自定义库时排除内部的SimpleXML依赖
implementation ('你的组ID:poslib:版本号') {
    exclude group: 'org.simpleframework', module: 'simple-xml'
}

验证是否生效

执行下面的Gradle命令查看依赖树,确认org.simpleframework:simple-xml只有一个来源:

./gradlew app:dependencies

搜索这个依赖,确保不会同时出现poslib和官方包的条目。

额外注意

  • 操作完成后记得清理缓存并重新构建:./gradlew clean build
  • 后续建议规范库的依赖声明:如果希望主项目控制依赖版本,库中用api声明SimpleXML;如果要把依赖打包进库,用implementation,避免主项目重复引入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:15:50