在Gradle文件中应用realm插件失败,提示仓库配置冲突如何解决?
报错原因
你使用的 Gradle 7.0+ 版本默认开启了「优先使用settings配置仓库」规则,禁止插件或项目级构建文件私自新增仓库。而你引入的 Realm 3.5.0 是较老的版本,插件内部会自动添加 BintrayJCenter 仓库,触发了该规则导致报错。
解决方案
方案1:调整仓库规则兼容旧版本(临时可用,不推荐长期使用)
- 打开项目根目录下的
settings.gradle文件 - 找到
dependencyResolutionManagement配置块,代码大致如下:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() // 确保这里已经添加jcenter,旧版Realm依赖需要从该仓库拉取 jcenter() } }
- 将
repositoriesMode的参数修改为RepositoriesMode.PREFER_PROJECT,或者直接注释掉该行配置 - 同步项目即可解决报错
方案2:升级Realm到最新稳定版(推荐)
JCenter已经正式停止维护,旧版本Realm后续可能出现依赖拉取失败的问题,升级到新版本可以从根源解决该问题:
- 打开项目级
build.gradle文件,替换Realm插件的版本号为最新稳定版:
dependencies { classpath "com.android.tools.build:gradle:7.0.1" // 替换原3.5.0版本的配置 classpath "io.realm:realm-gradle-plugin:10.15.1" }
- 新版本Realm插件不会自动添加JCenter仓库,无需修改settings.gradle的仓库规则,同步项目即可正常运行
- 如果升级后出现API不兼容问题,对应调整业务代码即可
内容的提问来源于stack exchange,提问作者noa
相关产品推荐
相关产品推荐

