React Native集成@rnmapbox/maps Android构建报错:找不到指定依赖
解决@rnmapbox/maps Android构建依赖缺失问题
检查仓库配置位置是否正确
确保Mapbox的Maven仓库配置在android/build.gradle的allprojects.repositories块中,而非buildscript.repositories,正确配置示例:
allprojects { repositories { // 保留原有仓库(如google()、mavenCentral()等) maven { url 'https://api.mapbox.com/downloads/v2/releases/maven' authentication { basic(BasicAuthentication) } credentials { username = 'mapbox' password = '你的Mapbox Secret Token' } } } }
注意:密码必须是带DOWNLOADS:READ权限的Mapbox Secret Token,不是公开的Access Token。
锁定依赖版本匹配
@rnmapbox/maps与Mapbox Android SDK版本需严格对应,针对报错的版本,可在android/app/build.gradle的dependencies块中强制指定:
// 强制锁定依赖版本,避免版本冲突 implementation('com.mapbox.maps:android:10.16.0') { force = true } implementation('com.mapbox.mapboxsdk:mapbox-sdk-turf:6.11.0') { force = true }
清理构建缓存后重试
执行以下命令彻底清理缓存并重新构建:
# 清理Yarn缓存 yarn cache clean # 清理Android构建缓存 cd android && ./gradlew clean # 重新安装依赖 cd .. && yarn install # 重新构建Android项目 cd android && ./gradlew assembleDebug
验证Gradle版本兼容性
React Native 0.72.6对应的Gradle插件版本为7.4.2,Gradle Wrapper版本为7.5,检查以下配置:
android/gradle/wrapper/gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
android/build.gradle的buildscript.dependencies:
classpath 'com.android.tools.build:gradle:7.4.2'
排查网络访问问题
若构建环境在代理或防火墙后,需确保能访问Mapbox的Maven仓库,可通过以下命令测试:
curl -u mapbox:你的Secret Token https://api.mapbox.com/downloads/v2/releases/maven/com/mapbox/maps/android/10.16.0/android-10.16.0.pom
返回正常的POM文件内容则网络正常,否则需调整代理或防火墙规则。
内容的提问来源于stack exchange,提问作者Adil Ijaz
相关产品推荐
相关产品推荐

