如何使用 Java 修复 AndroidX 中 Mapbox 9.5.0 的未解析导入
How to fix unresolved imports for Mapbox 9.5.0 in AndroidX using Java
我正在使用 Mapbox SDK(当前版本 9.5.0)创建 Android 导航应用程序,我已经成功地能够初始化地图视图并跟踪用户的当前位置.到目前为止,我没有遇到未解决的导入语句或任何实际问题的问题。我目前正在开发的功能是允许用户 select 地图上的一个位置点,这将在该点上放置一个地图标记,并 return 标记的坐标。为了合并此功能,我一直在关注 Mapbox 文档,特别是 this tutorial.
现在我已经将这段新代码添加到我的应用程序中,我发现了一些问题,有相当多的对象我正在尝试使用但无法解决,要调查这个问题我转到 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"下都有红线,报错:" Cannot resolve symbol 'api' “。其他一些错误的导入是:
import com.mapbox.core.exceptions.ServicesException;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import timber.log.Timber;
我不确定为什么所有这些特定的导入都没有得到解决,因为我所有其他的 Mapbox 导入都没有给我任何问题。我怀疑它可能是我的 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'
如果有人知道我的问题可能是什么,我将不胜感激。
坚持使用 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 uses MapboxGeocoding
, which is the Mapbox Java SDK's wrapper around the Mapbox Geocoding API. You need to install the services
module to use MapboxGeocoding
: https://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;
请注意还有 Places 插件 https://docs.mapbox.com/android/plugins/overview/places/, which has a place picker functionality (https://docs.mapbox.com/android/plugins/examples/place-picker/) that's more polished than https://docs.mapbox.com/android/maps/examples/location-picker
MAPBOX_DOWNLOADS_TOKEN="PASTE_YOUR_SECRET_TOKEN_HERE" instead of MAPBOX_DOWNLOADS_TOKEN=PASTE_YOUR_SECRET_TOKEN_HERE.
试试这个,在我的例子中引号是问题所在。只需删除引号就可以了
我正在使用 Mapbox SDK(当前版本 9.5.0)创建 Android 导航应用程序,我已经成功地能够初始化地图视图并跟踪用户的当前位置.到目前为止,我没有遇到未解决的导入语句或任何实际问题的问题。我目前正在开发的功能是允许用户 select 地图上的一个位置点,这将在该点上放置一个地图标记,并 return 标记的坐标。为了合并此功能,我一直在关注 Mapbox 文档,特别是 this tutorial.
现在我已经将这段新代码添加到我的应用程序中,我发现了一些问题,有相当多的对象我正在尝试使用但无法解决,要调查这个问题我转到 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"下都有红线,报错:" Cannot resolve symbol 'api' “。其他一些错误的导入是:
import com.mapbox.core.exceptions.ServicesException;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import timber.log.Timber;
我不确定为什么所有这些特定的导入都没有得到解决,因为我所有其他的 Mapbox 导入都没有给我任何问题。我怀疑它可能是我的 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'
如果有人知道我的问题可能是什么,我将不胜感激。
坚持使用 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 uses MapboxGeocoding
, which is the Mapbox Java SDK's wrapper around the Mapbox Geocoding API. You need to install the services
module to use MapboxGeocoding
: https://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;
请注意还有 Places 插件 https://docs.mapbox.com/android/plugins/overview/places/, which has a place picker functionality (https://docs.mapbox.com/android/plugins/examples/place-picker/) that's more polished than https://docs.mapbox.com/android/maps/examples/location-picker
MAPBOX_DOWNLOADS_TOKEN="PASTE_YOUR_SECRET_TOKEN_HERE" instead of MAPBOX_DOWNLOADS_TOKEN=PASTE_YOUR_SECRET_TOKEN_HERE.
试试这个,在我的例子中引号是问题所在。只需删除引号就可以了