我希望看看是否有人知道这个问题和任何潜在的解决办法。
我正在使用ArcGIS runtime SDK for Qt(100.2)。问题是,如果创建了一个内部有地图的地图视图,然后将其销毁,它会崩溃,并显示以下消息:
QCoreApplication::sendEvent中的ASSERT failure:“无法将事件发送到其他线程所拥有的对象。当前线程0x0x174329f60。在线程0x0x17001d940文件内核/QCoreApplication中创建了接收器“”(类型为“QRTImpl::LocationDisplayImpl”)
。cpp,第563行
这在Mac或Android上不会发生。我的用例是在stackView中加载的组件中创建一个映射。当我离开该组件时,stackview会终止导致崩溃的mapview。我创建了一个空的ArcGIS qml应用程序,以更简单的方式测试这个问题,方法是在加载程序中显示地图,并使用“卸载”按钮。请参见文章底部的简单示例。
import QtQuick 2.6
import QtQuick.Controls 1.4
import Esri.ArcGISRuntime 100.2
ApplicationWindow {
id: appWindow
width: 800
height: 600
title: "IosMapTest"
Rectangle {
id: backgroundRect
anchors.fill: parent
color: "red"
}
Loader {
id: mapLoader
anchors.fill: parent
// add a mapView component
sourceComponent: MapView {
anchors.fill: parent
// set focus to enable keyboard navigation
focus: true
// add a map to the mapview
Map {
// add the BasemapTopographic basemap to the map
BasemapTopographic {}
}
}
}
Button {
anchors.bottom: parent.bottom
anchors.right: parent.right
text: "click here for crash"
onClicked: mapLoader.sourceComponent = undefined
}
}