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

自定义Android库作为Unity原生插件集成出现Duplicate Class报错

问题根因

你遇到的重复类报错核心原因是两份相同的依赖类同时参与了构建:

  • 你导出的Android库test-lib-release已经将appcompat、constraintlayout、material三个依赖的类打包进了aar产物中
  • Unity侧又通过Jar Resolver额外声明了这三个相同版本的依赖,构建时两份类重复触发冲突

解决方案

优先采用「Android库不内嵌三方依赖 + Unity侧统一管理依赖」的方案,后续维护成本更低:

1. 调整Android库打包配置

正常Android Library使用implementation声明的依赖默认不会打包进aar产物,你出现依赖内嵌的情况大概率是以下两种原因,对应修改即可:

  • 如果你使用了fat-aar插件(如com.github.kezong:fat-aar),将三个依赖的embed声明改为implementation即可
  • 如果你手动把三个依赖的jar/aar文件复制到了库项目的libs目录下,直接删除对应文件即可
    修改完成后重新导出aar,替换Unity项目中旧的test-lib-release文件。

2. 修正Unity侧配置

  • 删掉你之前手动加在mainTemplate.gradle里的三个依赖声明,你已经通过MyPluginDependencies.xml配置给Jar Resolver,它会自动生成依赖配置,不需要重复手写
  • 确认Jar Resolver生成的依赖版本和Android库使用的版本完全一致(你当前配置的1.3.1、2.1.1、1.4.0已经匹配,无需调整)

应急兼容方案

如果你不方便修改Android库的打包逻辑,可以直接在Unity的mainTemplate.gradle的android代码块中添加排除规则,强制过滤掉Unity侧重复的依赖:

android {
    // 保留原有配置不变
    configurations {
        all*.exclude group: 'androidx.appcompat', module: 'appcompat'
        all*.exclude group: 'androidx.constraintlayout', module: 'constraintlayout'
        all*.exclude group: 'com.google.android.material', module: 'material'
    }
}

修改后重新构建即可解决重复类报错,同时因为你的aar已经内嵌了依赖,也不会出现主题资源找不到的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:24:04