Gesoservices provider is not supported on an Android using Mapbox with QT(在使用带Qt的MapBox的Android上不支持GesoservicesProvider)
问题描述
我正在尝试使用Qt SDK运行Mapbox的一个简单示例。 在我的Mac上没有问题,但是当这个示例在我的Android手机上运行时,我看到一个空白地图,如果我在Map对象上调用函数errorString,我会收到这样的错误消息:
不支持地理服务提供程序。
有人能帮我吗? 我的MapBox密钥有效,我按照他们在MapBox网站上的建议进行了测试。
我使用的是Qt 5.12,我的LG5手机使用的是Android 8.0。
我不明白的是什么?
推荐答案
显然存在某种依赖项解析错误,并且QtAPK捆绑包不会像
那样添加几个共享库libplugins_geoservices_qtgeoservices_mapboxgl_armeabi-v7a.so
libQt5OpenGL_armeabi-v7a.so
libQt5Sql_armeabi-v7a.so
这就是修复它的方法(在地图查看器Qt示例中找到它)。添加到您的.pro文件:
# Workaround for QTBUG-38735
QT_FOR_CONFIG += location-private
qtConfig(geoservices_mapboxgl): QT += sql opengl
qtConfig(geoservices_osm): QT += concurrent
如果您使用的是CMake版本,则添加Qt5::SQL和Qt5::OpenGL以及Qt5:Location也可以解决此问题:
find_package(Qt5 REQUIRED Positioning Location Sql OpenGL)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
Qt5::Location
Qt5::Positioning
Qt5::Sql
Qt5::OpenGL
)
这篇关于在使用带Qt的MapBox的Android上不支持GesoservicesProvider的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!