在使用带Qt的MapBox的Android上不支持GesoservicesProvider [英] Gesoservices provider is not supported on an Android using Mapbox with QT

查看:131
本文介绍了在使用带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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆