放大后 UWP MapControl 崩溃
UWP MapControl crashes after zooming in
我创建了一个没有代码的简单 UWP 应用程序,只是 XAML。
<Grid>
<maps:MapControl/>
</Grid>
如果我放大到美国各州级别,应用程序将因未处理的异常而崩溃。
事件查看器应用程序日志显示:
Faulting module name: ucrtbase.dll, version: 10.0.19041.546, time stamp: 0x43cbc11d
Exception code: 0xc0000409
我 运行 Windows 10 版本 20H2(OS 内部版本 19042.630)。
如何进一步修复或诊断此崩溃?
更新 1
我能够在崩溃时捕获调用堆栈:
ucrtbase.dll!abort() Unknown
ucrtbase.dll!terminate() Unknown
ucrtbase.dll!__crt_state_management::wrapped_invoke<void (*)(void),void>(void (*)(void)) Unknown
BingMaps.dll!MapControl::DetailTextureSource::beginGetTexture(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > > const &,class std::shared_ptr<class MapControl::TileImage>,class Math::TileId const &) Unknown
BingMaps.dll!MapControl::DetailTextureSource::childOperationCompleted(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > >,class Math::TileId,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > const &) Unknown
BingMaps.dll!std::_Func_impl_no_alloc<class std::_Binder<struct std::_Unforced,void ( MapControl::DetailTextureSource::*)(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > >,class Math::TileId,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > const &),class MapControl::DetailTextureSource *,class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > > &,class Math::TileId const &,struct std::_Ph<1> const &>,void,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > &>::_Do_call(class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > &) Unknown
BingMaps.dll!Pal::AsyncOperation<struct Core::DummyType>::callbackFromBaseClass(void) Unknown
BingMaps.dll!Pal::UntypedAsyncOperation::tryComplete(class Core::StatusCode) Unknown
BingMaps.dll!Pal::UntypedAsyncOperation::setSucceededOrFailedInternal(class Core::StatusCode) Unknown
BingMaps.dll!MapControl::PipelineAsyncSource<class std::shared_ptr<class MapControl::TileImage>,class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> > >::process(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class std::shared_ptr<class MapControl::TileImage>,struct std::pair<class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> >,class std::shared_ptr<class Utility::PrioritizableTask> > > > const &,class std::shared_ptr<class Pal::UntypedAsyncOperationCancelList> const &) Unknown
BingMaps.dll!std::_Func_impl_no_alloc<class std::_Binder<struct std::_Unforced,void ( MapControl::PipelineAsyncSource<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> > >::*)(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,struct std::pair<class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> >,class std::shared_ptr<class Utility::PrioritizableTask> > > > const &,class std::shared_ptr<class Pal::UntypedAsyncOperationCancelList> const &),class MapControl::PipelineAsyncSource<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,class std::shared_ptr<class Pal::AsyncOperation<class Map Unknown
MapConfiguration.dll!Pal::Task::run(void) Unknown
MapConfiguration.dll!Utility::PrioritizedTaskQueue::executeNextTask(void) Unknown
MapConfiguration.dll!Pal::Task::run(void) Unknown
MapConfiguration.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl ABI::Windows::System::Threading::IWorkItemHandler::*)(ABI::Windows::Foundation::IAsyncAction *)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,ABI::Windows::System::Threading::IWorkItemHandler,Microsoft::WRL::FtmBase>,<lambda_a2440968369958b092dc7b4a3993b234> &,-1,ABI::Windows::Foundation::IAsyncAction *>::Invoke() Unknown
threadpoolwinrt.dll!Windows::System::Threading::CThreadPoolWorkItem::CommonWorkCallback() Unknown
threadpoolwinrt.dll!Windows::System::Threading::CThreadPoolWorkItem::BatchedCallback() Unknown
ntdll.dll!TppWorkpExecuteCallback() Unknown
ntdll.dll!TppWorkerThread() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
更新 2
飞行模式下不会发生崩溃:
<maps:MapControl Style="AerialWithRoads" />
更新 3
来自 Microsoft 支持,
Upon investigation, the Bing Maps UWP control was inadvertently unable
to handle a certain condition around the tiles. To mitigate this
issue, our Product Group has initiated rolling back the change that
impacted this experience. This issue should be beginning to resolve
within the next hour, if not already.
我为此做了测试。该示例在 Build 2004 中正常工作,但在 Build 20H2 中崩溃。如果我删除更改 ZoomLevel 属性 的代码,该示例也将在 Build 20H2 中正常工作。我会向团队报告此事。
我也遇到过这种情况,昨天它工作正常,今天打开带有 MapControl 的页面时应用程序崩溃了。删除 ZoomLevel 属性 有帮助。
<maps:MapControl ZoomLevel="12" /> <!-- Crashed -->
<maps:MapControl /> <!-- Working -->
删除 ZoomLevel 属性 但手动放大(或使用鼠标滚动)应用程序在放大到远处时崩溃。
临时解决方法:
<maps:MapControl ZoomInteractionMode="Disabled" /> <!-- Better -->
发生在 Windows 10 Build 2004 上。
其中一项地图服务返回错误数据。这已经得到缓解,控件现在应该可以正常工作了。
我面临完全相同的问题。在过去的 2 个月里,我一直在测试我的应用程序,它从未因为 MapControl 而崩溃。我上周在商店提交了应用程序,但没有崩溃。
今天,每当用户导航到包含不同天气图层的 PivotControl 的地图页面时,它突然开始崩溃。
我认为这与 Windows 10 build 没有任何关系。我在多个版本(1803、1903 和 2004)中都面临这个问题。
以下是我的一些观察。
- 当我删除其他 Pivot Items 并只留下一个时,它会起作用。
- 当我删除“ZoomLevel”属性 并保留所有枢轴项时它也有效。
看来微软在服务端做了一些改动
这是我从微软得到的支持回复:
Upon investigation, the Bing Maps UWP control was inadvertently unable
to handle a certain condition around the tiles. To mitigate this
issue, our Product Group has initiated rolling back the change that
impacted this experience. This issue should be beginning to resolve
within the next hour, if not already.
此问题现已解决。
我创建了一个没有代码的简单 UWP 应用程序,只是 XAML。
<Grid>
<maps:MapControl/>
</Grid>
如果我放大到美国各州级别,应用程序将因未处理的异常而崩溃。
事件查看器应用程序日志显示:
Faulting module name: ucrtbase.dll, version: 10.0.19041.546, time stamp: 0x43cbc11d
Exception code: 0xc0000409
我 运行 Windows 10 版本 20H2(OS 内部版本 19042.630)。
如何进一步修复或诊断此崩溃?
更新 1
我能够在崩溃时捕获调用堆栈:
ucrtbase.dll!abort() Unknown
ucrtbase.dll!terminate() Unknown
ucrtbase.dll!__crt_state_management::wrapped_invoke<void (*)(void),void>(void (*)(void)) Unknown
BingMaps.dll!MapControl::DetailTextureSource::beginGetTexture(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > > const &,class std::shared_ptr<class MapControl::TileImage>,class Math::TileId const &) Unknown
BingMaps.dll!MapControl::DetailTextureSource::childOperationCompleted(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > >,class Math::TileId,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > const &) Unknown
BingMaps.dll!std::_Func_impl_no_alloc<class std::_Binder<struct std::_Unforced,void ( MapControl::DetailTextureSource::*)(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > >,class Math::TileId,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > const &),class MapControl::DetailTextureSource *,class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > > &,class Math::TileId const &,struct std::_Ph<1> const &>,void,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > &>::_Do_call(class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > &) Unknown
BingMaps.dll!Pal::AsyncOperation<struct Core::DummyType>::callbackFromBaseClass(void) Unknown
BingMaps.dll!Pal::UntypedAsyncOperation::tryComplete(class Core::StatusCode) Unknown
BingMaps.dll!Pal::UntypedAsyncOperation::setSucceededOrFailedInternal(class Core::StatusCode) Unknown
BingMaps.dll!MapControl::PipelineAsyncSource<class std::shared_ptr<class MapControl::TileImage>,class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> > >::process(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class std::shared_ptr<class MapControl::TileImage>,struct std::pair<class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> >,class std::shared_ptr<class Utility::PrioritizableTask> > > > const &,class std::shared_ptr<class Pal::UntypedAsyncOperationCancelList> const &) Unknown
BingMaps.dll!std::_Func_impl_no_alloc<class std::_Binder<struct std::_Unforced,void ( MapControl::PipelineAsyncSource<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> > >::*)(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,struct std::pair<class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> >,class std::shared_ptr<class Utility::PrioritizableTask> > > > const &,class std::shared_ptr<class Pal::UntypedAsyncOperationCancelList> const &),class MapControl::PipelineAsyncSource<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,class std::shared_ptr<class Pal::AsyncOperation<class Map Unknown
MapConfiguration.dll!Pal::Task::run(void) Unknown
MapConfiguration.dll!Utility::PrioritizedTaskQueue::executeNextTask(void) Unknown
MapConfiguration.dll!Pal::Task::run(void) Unknown
MapConfiguration.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl ABI::Windows::System::Threading::IWorkItemHandler::*)(ABI::Windows::Foundation::IAsyncAction *)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,ABI::Windows::System::Threading::IWorkItemHandler,Microsoft::WRL::FtmBase>,<lambda_a2440968369958b092dc7b4a3993b234> &,-1,ABI::Windows::Foundation::IAsyncAction *>::Invoke() Unknown
threadpoolwinrt.dll!Windows::System::Threading::CThreadPoolWorkItem::CommonWorkCallback() Unknown
threadpoolwinrt.dll!Windows::System::Threading::CThreadPoolWorkItem::BatchedCallback() Unknown
ntdll.dll!TppWorkpExecuteCallback() Unknown
ntdll.dll!TppWorkerThread() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
更新 2
飞行模式下不会发生崩溃:
<maps:MapControl Style="AerialWithRoads" />
更新 3
来自 Microsoft 支持,
Upon investigation, the Bing Maps UWP control was inadvertently unable to handle a certain condition around the tiles. To mitigate this issue, our Product Group has initiated rolling back the change that impacted this experience. This issue should be beginning to resolve within the next hour, if not already.
我为此做了测试。该示例在 Build 2004 中正常工作,但在 Build 20H2 中崩溃。如果我删除更改 ZoomLevel 属性 的代码,该示例也将在 Build 20H2 中正常工作。我会向团队报告此事。
我也遇到过这种情况,昨天它工作正常,今天打开带有 MapControl 的页面时应用程序崩溃了。删除 ZoomLevel 属性 有帮助。
<maps:MapControl ZoomLevel="12" /> <!-- Crashed -->
<maps:MapControl /> <!-- Working -->
删除 ZoomLevel 属性 但手动放大(或使用鼠标滚动)应用程序在放大到远处时崩溃。
临时解决方法:
<maps:MapControl ZoomInteractionMode="Disabled" /> <!-- Better -->
发生在 Windows 10 Build 2004 上。
其中一项地图服务返回错误数据。这已经得到缓解,控件现在应该可以正常工作了。
我面临完全相同的问题。在过去的 2 个月里,我一直在测试我的应用程序,它从未因为 MapControl 而崩溃。我上周在商店提交了应用程序,但没有崩溃。
今天,每当用户导航到包含不同天气图层的 PivotControl 的地图页面时,它突然开始崩溃。
我认为这与 Windows 10 build 没有任何关系。我在多个版本(1803、1903 和 2004)中都面临这个问题。
以下是我的一些观察。
- 当我删除其他 Pivot Items 并只留下一个时,它会起作用。
- 当我删除“ZoomLevel”属性 并保留所有枢轴项时它也有效。
看来微软在服务端做了一些改动
这是我从微软得到的支持回复:
Upon investigation, the Bing Maps UWP control was inadvertently unable to handle a certain condition around the tiles. To mitigate this issue, our Product Group has initiated rolling back the change that impacted this experience. This issue should be beginning to resolve within the next hour, if not already.
此问题现已解决。