Unity适配API 33时Gradle仓库配置错误求助
解决Unity 2022.x升级后Gradle仓库配置冲突问题
针对你遇到的Build was configured to prefer settings repositories over project repositories but repository 'MavenRepo' was added by build file 'build.gradle'错误,以下是针对性的解决步骤:
1. 定位并移除项目级build.gradle中的MavenRepo配置
- 检查项目内
Assets/Plugins/Android目录下的所有build.gradle文件,以及构建输出目录中的主项目build.gradle,查找包含MavenRepo的仓库配置(比如maven { name 'MavenRepo'; url 'xxx' }),直接删除这些配置块。 - 如果你修改过自定义的
baseProjectTemplate.gradle,打开该文件,确认repositories块内没有额外添加的MavenRepo相关配置。
2. 将所有仓库配置迁移到settingsTemplate.gradle
Unity 2022.x默认启用了settings级仓库优先的模式,所有仓库必须在settings.gradle中定义:
- 打开项目内的
settingsTemplate.gradle(若未自定义,可从Unity安装目录Editor/Data/PlaybackEngines/AndroidPlayer/Templates/gradle/settingsTemplate.gradle复制到Assets/Plugins/Android下),在dependencyResolutionManagement的repositories块中添加所有需要的仓库,示例:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() // 把之前在build.gradle里的第三方仓库移到这里,比如: // maven { url 'https://your-custom-repo-url.com' } } } - 注意
RepositoriesMode.FAIL_ON_PROJECT_REPOS会强制拒绝项目级build.gradle中的仓库配置,这是错误触发的核心原因。
3. 排查第三方插件的Gradle配置
很多第三方SDK(广告、统计类等)会自带Gradle配置,偷偷添加仓库:
- 遍历
Assets/Plugins/Android下的所有子目录,检查每个插件的build.gradle文件,删除其中的repositories块。 - 若插件是AAR包,可解压查看内部是否包含违规的Gradle脚本,必要时更换适配Unity 2022版本的插件。
4. 清理缓存并重建
- 点击Unity顶部菜单
File -> Build Settings -> Android -> Clean Build,清理构建缓存。 - 删除项目根目录下的
.gradle、Library、Temp文件夹,彻底清理Unity缓存。 - 重启Unity后重新执行构建。
5. 验证自定义模板配置
在Unity的Edit -> Project Settings -> Player -> Android -> Publishing Settings中,确认勾选了Custom Gradle Template、Custom Base Gradle Template、Custom Settings Gradle Template,确保你修改的是项目内的模板文件,而非Unity安装目录下的默认模板。
内容的提问来源于stack exchange,提问作者Chethan CV
相关产品推荐
相关产品推荐

