android - mapbox 注释 0.9.0 不适用于 mapbox 9.6.0
问题描述
我添加了 mapbox 及其注释依赖项,如下所示:
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.0'
api 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0'
一切都运行良好,但由于我已将 mapbox 版本从 9.2.0 更改为 9.6.0,因此在运行我的应用程序时出现此错误。注意:构建成功,但应用程序无法正常运行。v9.4.0 和 9.5.0 也会出现此错误。
错误:
Execution failed for task ':app:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
> Could not find com.mapbox.mapboxsdk:mapbox-android-sdk:9.6.0.
Searched in the following locations:
- https://jcenter.bintray.com/com/mapbox/mapboxsdk/mapbox-android-sdk/9.6.0/mapbox-android-sdk-9.6.0.pom
- https://dl.google.com/dl/android/maven2/com/mapbox/mapboxsdk/mapbox-android-sdk/9.6.0/mapbox-android-sdk-9.6.0.pom
- https://maven.google.com/com/mapbox/mapboxsdk/mapbox-android-sdk/9.6.0/mapbox-android-sdk-9.6.0.pom
- https://repo.maven.apache.org/maven2/com/mapbox/mapboxsdk/mapbox-android-sdk/9.6.0/mapbox-android-sdk-9.6.0.pom
Required by:
project :app > project :mapir-android-sdk
> Could not find com.mapbox.mapboxsdk:mapbox-android-sdk:9.6.0.
Searched in the following locations:
- https://jcenter.bintray.com/com/mapbox/mapboxsdk/mapbox-android-sdk/9.6.0/mapbox-android-sdk-9.6.0.pom
- https://dl.google.com/dl/android/maven2/com/mapbox/mapboxsdk/mapbox-android-sdk/9.6.0/mapbox-android-sdk-9.6.0.pom
- https://maven.google.com/com/mapbox/mapboxsdk/mapbox-android-sdk/9.6.0/mapbox-android-sdk-9.6.0.pom
- https://repo.maven.apache.org/maven2/com/mapbox/mapboxsdk/mapbox-android-sdk/9.6.0/mapbox-android-sdk-9.6.0.pom
Required by:
project :app > project :mapir-android-sdk > com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0
Possible solution:
- Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
解决方案
从 Mapbox Maps SDK for Android 9.4 版开始,访问 Maven 存储库以下载 SDK 库的方式发生了变化。
您现在需要创建一个秘密访问令牌并使用它来访问库所在的 maven 存储库。您的模块级 build.gradle 应包含以下内容:
allprojects {
repositories {
maven {
url 'https://api.mapbox.com/downloads/v2/releases/maven'
authentication {
basic(BasicAuthentication)
}
credentials {
// Do not change the username below.
// This should always be `mapbox` (not your username).
username = 'mapbox'
// Use the secret token you stored in gradle.properties as the password
password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: ""
}
}
}
}
另请参阅:
https://docs.mapbox.com/android/maps/overview/#configure-credentials