Unity 2020.3.20f1安卓构建因重复资源失败求解决方案
针对你用Unity 2020.3.20f1构建安卓时出现的重复资源报错(手动删除重复文件后重建又出现),可以按以下步骤排查解决:
清理Unity缓存与临时文件
关闭Unity,删除项目根目录下的Temp、Library、obj文件夹,同时删除报错路径里的gradleOut文件夹。重启Unity后重新尝试构建,这些临时文件是Unity自动生成的,清理后能避免旧缓存导致的重复资源问题。检查自定义安卓资源文件
查看项目的Assets/Plugins/Android目录,如果你手动添加过styles.xml、strings.xml、ids.xml等资源文件,很可能和Unity自动生成的资源冲突。要么合并这些文件的内容,删除重复的资源项;要么直接移除自定义的重复资源文件,改用Unity的默认配置。修改Gradle配置忽略重复资源
- 在Unity的Player设置(安卓平台)中,找到"Build"选项卡,勾选"Custom Gradle Template",Unity会在
Assets/Plugins/Android下生成mainTemplate.gradle文件。 - 打开该文件,找到
android节点,添加以下配置:packagingOptions { pickFirst '**/styles.xml' pickFirst '**/ids.xml' pickFirst '**/strings.xml' }
这个配置会让Gradle在遇到重复资源时,优先选择第一个找到的文件,跳过重复项。
- 在Unity的Player设置(安卓平台)中,找到"Build"选项卡,勾选"Custom Gradle Template",Unity会在
排查第三方插件冲突
部分第三方SDK(如广告、分析类插件)可能自带安卓资源文件,和Unity默认资源重复。尝试移除最近新增的插件,测试是否能正常构建,找到冲突插件后,要么更新到最新版本,要么手动删除插件里的重复资源文件。升级Unity或Gradle版本
Unity 2020.3.20f1可能存在Gradle兼容问题,你可以升级到2020.3系列的更高补丁版本,或者在Unity的Player设置中调整Gradle版本为Unity推荐的兼容版本(在"Gradle"选项里选择"Use Gradle installed with Unity"或指定兼容的本地Gradle版本)。
内容的提问来源于stack exchange,提问作者Aegylon

