如何在使用Java的AndroidX中解决Mapbox 9.5.0的未解决导入问题

5

我正在使用Mapbox SDK(当前版本为9.5.0)创建一个Android导航应用程序,并已成功初始化了地图视图并跟踪用户的当前位置。到目前为止,我没有遇到未解析的导入语句或任何实际问题。我目前正在开发的功能是允许用户在地图上选择位置点,该点将放置一个地图标记并返回标记的坐标。为了加入这个功能,我一直在遵循Mapbox文档,具体来说是此教程

现在我已经将这段新代码加入到我的应用程序中,但发现了一些问题,有相当多的对象无法解决,为了研究这个问题,我去查看了我的Java文件顶部的导入语句,并发现了一些不能正常工作的导入,那就是:

import com.mapbox.api.geocoding.v5.GeocodingCriteria;
import com.mapbox.api.geocoding.v5.MapboxGeocoding;
import com.mapbox.api.geocoding.v5.models.CarmenFeature;
import com.mapbox.api.geocoding.v5.models.GeocodingResponse;

以上所有导入都在“api”下方具有红色波浪线,并显示错误:“无法解析符号'api'”。一些其他错误的导入如下:
import com.mapbox.core.exceptions.ServicesException;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import timber.log.Timber;

我不确定为什么所有这些特定的导入都无法解析,因为我的其他Mapbox导入还没有给我任何问题。我怀疑可能是我的Gradle文件中缺少依赖项或实现,但是我已经按照文档指南尽力而为了,所以除非我遗漏了一些重要的东西,否则我不知道原因可能是什么。以下是我在gradle文件中添加的Mapbox依赖和实现:

项目级别build.gradle:
maven {
            url 'https://api.mapbox.com/downloads/v2/releases/maven'
            authentication {
                basic(BasicAuthentication)
            }
            credentials {
                username = 'mapbox'
                password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: "my secret password"
            }
        }

而在我的应用级 build.gradle 文件中:

    implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.5.0'

如果有人能够想到我的问题可能是什么,我会非常感激任何帮助。

对于测试用例集,请设置implementation('com.mapbox.mapboxsdk:mapbox-android-sdk:9.3.0'){ exclude group: 'group_name',module:'module_name' } - IntelliJ Amiya
尝试重新构建项目。 - Eyosiyas
我会尝试的,非常感谢。我只想知道是否应该替换'group_name'和'module_name'为其他内容还是保留原样? - Mark van Heerden
好的,请设置 implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.3.0'。然后进行清理和重建。 - IntelliJ Amiya
1
我刚刚尝试将版本更改为9.3.0,然后进行了清理和重建项目,但不幸的是它并没有改变任何东西。也许我缺少其他依赖项? - Mark van Heerden
2个回答

1

请使用 Maps SDK 9.5.0

虽然不需要,因为您可以使用常规日志记录(例如log.e而不是Timber.e),但是您可以通过以下方式下载 Timber: https://github.com/JakeWharton/timber#download

https://docs.mapbox.com/android/maps/examples/location-picker 使用 MapboxGeocoding,它是 Mapbox Java SDK 对 Mapbox Geocoding API 的包装器。 您需要安装 services 模块才能使用 MapboxGeocodinghttps://docs.mapbox.com/android/java/overview/#installation & https://docs.mapbox.com/android/java/overview/#available-packages。 这应该解决问题。

import com.mapbox.api.geocoding.v5.GeocodingCriteria;
import com.mapbox.api.geocoding.v5.MapboxGeocoding;
import com.mapbox.api.geocoding.v5.models.CarmenFeature;
import com.mapbox.api.geocoding.v5.models.GeocodingResponse;

并且

import com.mapbox.core.exceptions.ServicesException;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

提醒一下,还有地点插件https://docs.mapbox.com/android/plugins/overview/places/,它具有比https://docs.mapbox.com/android/maps/examples/location-picker更加完善的地点选择器功能(https://docs.mapbox.com/android/plugins/examples/place-picker/)。请注意保留HTML标签。

-1
MAPBOX_DOWNLOADS_TOKEN="PASTE_YOUR_SECRET_TOKEN_HERE" instead of MAPBOX_DOWNLOADS_TOKEN=PASTE_YOUR_SECRET_TOKEN_HERE.

试一下这个,在我的情况下,引号是问题。只需去掉引号就可以了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接