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

Android构建遇401未授权:无法解析Mapbox依赖com.mapbox.maps:android:10.17.0

修复React Native集成@rnmapbox/maps时Android构建401未授权问题

针对你遇到的无法解析Mapbox Maven依赖、返回401未授权的问题,按以下步骤逐一排查修复:

1. 确认Mapbox密钥的有效性

  • 必须使用Secret Access Token(而非Public Token),在Mapbox控制台创建时务必勾选Downloads:Read权限
  • 检查密钥是否存在拼写错误、前后空格,或是否已过期/被吊销

2. 修正gradle.properties配置

  • 将密钥放在项目根目录的gradle.properties文件中,格式为:
    sk-key=你的Secret Access Token内容
    
  • 不要给密钥加引号,确保文件路径正确(不是app模块下的gradle.properties)

3. 修复Gradle仓库配置结构

你的allprojects块被错误嵌套在buildscript内部,这会导致仓库配置不生效。调整根目录build.gradle的结构为:

buildscript {
    ext {
        buildToolsVersion = "34.0.0"
        minSdkVersion = 23
        compileSdkVersion = 34
        targetSdkVersion = 34
        ndkVersion = "26.1.10909125"
        kotlinVersion = "1.9.22"
        RNMapboxMapsImpl = 'mapbox'
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle")
        classpath("com.facebook.react:react-native-gradle-plugin")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
    }
}

// allprojects与buildscript同级,不能嵌套
allprojects {
    repositories {
        // 保留其他仓库配置
        maven {
            url 'https://api.mapbox.com/downloads/v2/releases/maven'
            authentication {
                basic(BasicAuthentication)
            }
            credentials {
                username = 'mapbox'
                password = project.properties['sk-key'] ?: ""
            }
        }
    }
}

4. 清理Gradle缓存

  • 执行命令清理项目缓存:
    # Mac/Linux
    ./gradlew clean
    
    # Windows
    gradlew clean
    
  • 手动删除项目根目录下的.gradle/caches文件夹,以及用户目录(如~/.gradle/caches)下的Mapbox相关缓存

5. 验证密钥读取状态

在Gradle的credentials块中添加日志输出,确认密钥是否被正确加载:

credentials {
    username = 'mapbox'
    password = project.properties['sk-key'] ?: ""
    println "Mapbox密钥已加载: ${password != ''}"
}

重新构建项目,查看控制台输出:如果显示true说明密钥读取正常,否则需检查gradle.properties的配置是否正确

6. 确认依赖版本兼容性

@rnmapbox/maps v10.1.24依赖的Mapbox Android SDK 10.17.0和turf库6.11.0是兼容的,无需调整版本,确保密钥拥有访问这些资源的权限即可

内容的提问来源于stack exchange,提问作者Ahmet OZER

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:47:22