使用EAS构建含rnmapbox/maps的React Native应用遇Gradle错误求助
问题根源与修复方案
根源分析
这个错误的核心是Gradle版本与依赖的配置语法不兼容。Gradle 7.x及以上版本移除了在configurations块中直接调用maven()方法的支持,但rnmapbox/maps的原生Android配置(或项目中其他自定义原生代码)仍在使用这种已废弃的语法,导致构建时无法识别该方法,触发报错。
修复步骤
升级rnmapbox/maps到兼容版本
查看package.json中@rnmapbox/maps的版本,升级到适配Gradle 7+的最新稳定版(v10.x及以上版本已修复该Gradle配置问题):npm install @rnmapbox/maps@latest # 或 yarn add @rnmapbox/maps@latest若使用Expo预构建,需重新生成原生目录:
npx expo prebuild --clean手动修正Gradle配置(升级后仍报错时)
找到项目android/app/build.gradle或rnmapbox/maps模块下的build.gradle文件,定位到包含configurations.archives.maven()的代码块,将旧语法:configurations { archives { maven { // 原有配置内容 } } }替换为Gradle 7+支持的发布配置语法:
publishing { publications { maven(MavenPublication) { from components.java // 将原有的maven配置内容迁移到此处 } } }确认Gradle版本匹配
检查android/gradle/wrapper/gradle-wrapper.properties中的Gradle分发地址,确保使用兼容版本:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip同时确认
android/build.gradle中的Android Gradle插件版本适配:dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 其他依赖 }清理构建缓存
执行命令清理缓存,避免旧配置残留:./gradlew clean npx expo start --clear
内容的提问来源于stack exchange,提问作者Educorreia
相关产品推荐
相关产品推荐

