我在商店中拥有2年的Windows应用商店应用。 Windows 10发布后,我遇到了很多崩溃。我可以重现崩溃,但仅限于Windows 10,而不是8或8.1,我也能看到此崩溃仅在Windows 10上通过开发者控制台发生。 Windows 10~1000上有很多这样的崩溃,一个月。
崩溃序列:我打开页面,应用程序挂起一秒钟然后关闭而没有任何建议报告。
当我使用visual studio调试应用程序时,应用程序失败,例外情况:
dataGridView1.CurrentCell = null;
来自dev.windows控制台的堆栈跟踪:
Access violation reading location 0x00000090 in Windows.Ui.Xaml.dll
如果我下载报告,那就是错误说明:
windows_ui_xaml DirectUI::CCueRenderer::Initialize 0x154
windows_ui_xaml DirectUI::CTimedTextSource::Initialize 0xE0
windows_ui_xaml DirectUI::CTimedTextSource::Create 0x60
windows_ui_xaml DirectUI::MediaElement::EnableTimedText 0x60
windows_ui_xaml DirectUI::MediaElement::HandleMediaOpened 0x21
windows_ui_xaml DirectUI::MediaElement::OnMediaOpened 0x4D
windows_ui_xaml CFxCallbacks::MediaElement_OnMediaOpened 0x20
windows_ui_xaml CMediaElement::OpenMedia 0x156
windows_ui_xaml CMediaElement::HandleSourceReadyEvent 0x12
windows_ui_xaml CMediaElement::HandleMediaEvent 0x90
windows_ui_xaml CMediaQueue::ProcessQueue 0x67
windows_ui_xaml CMediaQueueManager::ProcessQueues 0x90
windows_ui_xaml CCoreServices::Tick 0x246
windows_ui_xaml CCoreServices::NWDrawTree 0x2F1
windows_ui_xaml CCoreServices::NWDrawMainTree 0xB7
windows_ui_xaml CWindowRenderTarget::Draw 0x73
windows_ui_xaml CXcpBrowserHost::OnTick 0x1CB
windows_ui_xaml CXcpDispatcher::Tick 0x88
windows_ui_xaml CXcpDispatcher::OnReentrancyProtectedWindowMessage 0x6F
windows_ui_xaml CXcpDispatcher::WindowProc 0xE0
user32 _InternalCallWinProc 0x2B
user32 UserCallWinProcCheckWow 0x1F0
user32 DispatchMessageWorker 0x231
user32 DispatchMessageW 0x10
windows_ui Windows::UI::Core::CDispatcher::ProcessMessage 0x356
windows_ui Windows::UI::Core::CDispatcher::WaitAndProcessMessages 0x129
windows_ui Windows::UI::Core::CDispatcher::ProcessEvents 0x75
windows_ui_xaml CJupiterWindow::RunCoreWindowMessageLoop 0x55
windows_ui_xaml CJupiterControl::RunMessageLoop 0x25
windows_ui_xaml DirectUI::DXamlCore::RunMessageLoop 0x1E
windows_ui_xaml DirectUI::FrameworkView::Run 0x1A
twinapi_appcore Windows::ApplicationModel::Core::CoreApplicationView::Run 0x3D
twinapi_appcore _lambda_8b2420e462ae079d580fd8e4ff08c89d_::_helper_func_stdcall_ 0xAC
shcore _WrapperThreadProc 0xCA
kernel32 BaseThreadInitThunk 0x24
ntdll __RtlUserThreadStart 0x2F
ntdll _RtlUserThreadStart
是否有人也遇到过与Windows 10相同的问题? 据我所知,堆栈跟踪中没有托管(我的)函数调用,这是否意味着它是Windows 10的错误?
答案 0 :(得分:1)
正如@Pooley所提到的,此代码会导致Windows 10计算机出错:
var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("msappx:///Resources/Sounds/" + name + ".mp3"));
var stream = await file.OpenAsync(FileAccessMode.Read);
var mediaElement = new MediaElement();
mediaElement.SetSource(stream, file.FileType); mediaElement.Play();
答案 1 :(得分:0)
我刚刚解决了一个非常类似的问题,通用应用程序会因读取访问冲突而崩溃。堆栈跟踪看起来与您的非常相似,大多数情况下它会在CXcpDispatcher :: Tick的某个地方崩溃。虽然并非总是如此,但堆栈跟踪以及异常本身有时会有所不同。
原因是一个本地c ++类,它由一个瘦C#包装器进行了dll导入(p / invoke)。当应用程序持有该类的实例时,它会不时地崩溃。
该c ++类有一个类型为std :: string的私有成员。删除该成员后,通用应用程序停止崩溃。 c ++编译器实际上为该成员发出了警告C4251。