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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:10:25