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

Expo React Native集成@rnmapbox/maps时遇401依赖解析错误求助

Expo React Native 安装@rnmapbox/maps 构建失败:401 Unauthorized 依赖解析错误

问题现象

构建时抛出如下错误:

FAILURE: Build failed with an exception.

- 问题原因:
无法确定任务':app:processDebugResources'的依赖项。

> 无法解析':app:debugRuntimeClasspath'配置的所有依赖项。
> 无法解析com.mapbox.maps:android:11.0.0。
> 被以下项目依赖:project :app > project :rnmapbox_maps
>> 无法解析com.mapbox.maps:android:11.0.0。
>> 无法获取资源'https://api.mapbox.com/downloads/v2/releases/maven/com/mapbox/maps/android/11.0.0/android-11.0.0.pom'。
>> 无法GET该资源,服务器返回状态码401: Unauthorized
> 无法解析com.mapbox.mapboxsdk:mapbox-sdk-turf:6.11.0。
> 被以下项目依赖:project :app > project :rnmapbox_maps
>> 无法解析com.mapbox.mapboxsdk:mapbox-sdk-turf:6.11.0。
>> 无法获取资源'https://api.mapbox.com/downloads/v2/releases/maven/com/mapbox/mapboxsdk/mapbox-sdk-turf/6.11.0/mapbox-sdk-turf-6.11.0.pom'。
>> 无法GET该资源,服务器返回状态码401: Unauthorized

- 建议尝试:
> 使用--stacktrace选项获取堆栈跟踪。
> 使用--info或--debug选项获取更多日志输出。
> 使用--scan选项获取完整分析信息。
> 访问https://help.gradle.org获取更多帮助。

核心原因

Mapbox的私有Maven仓库需要携带带DOWNLOADS:READ权限的Mapbox访问令牌才能拉取依赖,当前项目未正确配置授权凭证,导致请求返回401未授权错误。

解决步骤

1. 获取合规的Mapbox访问令牌

登录Mapbox平台,创建并获取一个包含DOWNLOADS:READ权限的访问令牌(该权限是拉取依赖的必要条件)。

2. 配置Gradle凭证(Bare/自定义开发客户端项目)

在项目的android/build.gradle文件中,添加Mapbox仓库的授权配置:

allprojects {
    repositories {
        // 保留原有仓库配置
        maven {
            url 'https://api.mapbox.com/downloads/v2/releases/maven'
            authentication {
                basic(BasicAuthentication)
            }
            credentials {
                username = 'mapbox'
                password = '你的Mapbox访问令牌'
            }
        }
    }
}

3. 用环境变量避免硬编码令牌(推荐)

不要直接将令牌写入代码,通过环境变量传递更安全:

  • 项目根目录创建.env文件:
    MAPBOX_DOWNLOAD_TOKEN=你的Mapbox访问令牌
    
  • 修改android/build.gradle读取环境变量:
    allprojects {
        repositories {
            // 保留原有仓库配置
            maven {
                url 'https://api.mapbox.com/downloads/v2/releases/maven'
                authentication {
                    basic(BasicAuthentication)
                }
                credentials {
                    username = 'mapbox'
                    password = System.getenv("MAPBOX_DOWNLOAD_TOKEN")
                }
            }
        }
    }
    

4. Managed Workflow 额外配置

如果是Expo Managed Workflow,需借助expo-build-properties插件注入配置:

  1. 安装插件:
    npx expo install expo-build-properties
    
  2. 修改app.json/app.config.js:
    {
      "expo": {
        "plugins": [
          [
            "expo-build-properties",
            {
              "android": {
                "extraGradleProperties": {
                  "MAPBOX_DOWNLOAD_TOKEN": "你的Mapbox访问令牌"
                }
              }
            }
          ]
        ]
      }
    }
    
  3. 确保android/build.gradle中已配置读取该环境变量(参考步骤3)。

5. 清理缓存后重新构建

执行以下命令清理缓存并重新构建:

cd android && ./gradlew clean
cd .. && npx expo run:android

内容的提问来源于stack exchange,提问作者Godwin Namweli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:15:09