Appcrash при использовании карты QtLocation в приложении Киригами с плагином «osm»

#qt #qt5 #gis #kde #qtlocation

Вопрос:

Я играю с киригами KDE и хочу разработать приложение, которое содержит карту. Я разрабатываю последнюю версию openSUSE Tumbleweed с KDevelop. Я начал с первоначального шаблона Киригами «новый проект» и добавил в него элемент карты на основе QtLocation 5.15 main.qml . Наконец, я хотел бы использовать пользовательский сервер листов. Но, однако, при использовании osm плагина он аварийно завершает работу после загрузки одной или двух плиток без какого-либо сообщения (в отладчике и интерфейсе командной строки). Однако mapboxgl плагин работает. Подключаемый osm модуль аварийно завершает работу с серверами листов по умолчанию или настраиваемыми серверами листов.

Вход Kirigami.page main.qml выглядит так, с разными конфигурациями, которые я проверил.

 import QtQuick 2.6 import QtQuick.Controls 2.0 as Controls import QtQuick.Layouts 1.2 import org.kde.kirigami 2.13 as Kirigami  import QtPositioning 5.15 import QtLocation 5.15   Kirigami.Page {  id: page   Layout.fillWidth: true   title: i18n("Main Page")     // working plugin  Plugin {  id: mapPlugin  name: "mapboxgl"   }    // plugin crashes  Plugin {  id: mapPluginOsm  name: "osm"   PluginParameter {  name: "osm.mapping.providersrepository.address"  value: "http://maps-redirect.qt.io/"  }  }    // plugin crashes  Plugin {  id: mapPluginOsm2  name: "osm"  PluginParameter {  name: "osm.mapping.providersrepository.disabled"  value: "true"  }  PluginParameter {  name: "osm.mapping.providersrepository.address"  value: "https://maps-redirect.qt.io/"  }  }   // plugin crashes  Plugin {  id: mapPluginOsm3  name: "osm"  PluginParameter {  name: "osm.mapping.providersrepository.disabled"  value: "true"  }  PluginParameter {  name: "osm.mapping.providersrepository.address"  value: "https://maps-redirect.qt.io/"  }  }    // plugin crashes  Plugin {  id: mapPluginOsm4  name: "osm"  }    // plugin crashes  Plugin {  id: mapPluginOwnTiles  name: "osm"  PluginParameter {  name: "osm.mapping.custom.host"  value: "own tile servers URI, working with leaflet"  }  PluginParameter {  name: "osm.mapping.providersrepository.disabled"  value: true  }  }         Map {  anchors.fill: parent  plugin: mapPluginOsm  center: QtPositioning.coordinate(52.52, 10.40)  zoomLevel: 10  activeMapType: supportedMapTypes[supportedMapTypes.length - 1]  }  }  

Это неправильное использование Киригами, QtLocation или что-то еще? Поскольку отладчик вообще не показывает никаких причин для зависания, я действительно не знаю, как отлаживать. Если я просто запущу двоичный файл, он тоже зависнет. Если я запускаю двоичный файл из интерфейса командной строки , я получаю одно предупреждение об устаревшем Units.devicePixelRatio , но это относится и к рабочему mapboxgl плагину, поэтому он, похоже, не подключен.

Комментарии:

1. может быть, использовать отладочную сборку Qt 5.15, чтобы связать ваше приложение, а затем запустить его в qtcreator в режиме отладки?