Gradle中BasicAuthentication配置报错,如何修复未文档化的基础认证调用?
解决Mapbox SDK配置时
basic(BasicAuthentication)的构建错误 问题根源
你碰到的这个错误是因为Gradle版本和示例里的语法不兼容,新版Gradle中authentication块的basic方法调用方式已更新,原示例的写法会导致类型不匹配,才触发Classifier 'BasicAuthentication' does not have a companion object这个报错。
解决办法
1. 改用新版Gradle兼容的配置写法
修改settings.gradle中的maven仓库配置,把basic(BasicAuthentication)替换成basic()即可,完整配置如下:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url = uri("https://api.mapbox.com/downloads/v2/releases/maven") authentication { basic() // 替换原有的basic(BasicAuthentication) } credentials { username = "mapbox" password = "你的Mapbox私有令牌" // 填入你自己的私有token } } } }
2. 必要时导入Gradle类(通常无需手动操作)
如果修改后仍有问题,检查settings.gradle顶部是否导入了必要的Gradle类:
import org.gradle.api.credentials.BasicAuthentication
不过新版Gradle大多会自动识别该类,一般不需要手动导入。
3. 验证Gradle版本
确保项目使用的Gradle版本符合Mapbox要求(建议使用7.0及以上版本),可以在gradle/wrapper/gradle-wrapper.properties文件中查看或修改版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
额外注意
Mapbox的私有令牌需要从你的Mapbox账户获取,且必须拥有DOWNLOADS:READ权限,否则会出现权限不足的错误。
内容的提问来源于stack exchange,提问作者heisveis
相关产品推荐
相关产品推荐

