[英]System.ExecutionEngineException on Windows 10 device
我正在开发Windows Phone 8.1应用程序。 它在WP 8和WP 8.1设备上可以正常工作,但在装有Windows 10的设备上会抛出异常
ExecutionEngineException was unhandled. An unhandled exception of type 'System.ExecutionEngineException' occurred in Unknown Module.
在“调试”和“发布”的各个部分中,都没有出现问题的任何数据。 在某些地方,总是会引发异常,在某些地方会不时引发异常。 下面的示例代码引发异常-它基本上是在选项卡之间切换的方法,这些选项卡是在点击按钮(带有图像的网格)时使用的StackPanels:
private void Grid_Tapped(object sender, TappedRoutedEventArgs e)
{
if(!isMapVisible)
{
hideSection();
map_wrapper.Visibility = Windows.UI.Xaml.Visibility.Visible;
map_button.Background = new SolidColorBrush(ColorHelper.FromArgb(0xFF, 40, 110, 73));
map_icon.Source = new BitmapImage(new Uri(FileHelper.getIconPath("tu_2.png")));
isMapVisible = true;
}
}
private void hideSection()
{
if(isMapVisible)
{
map_button.Background = new SolidColorBrush(ColorHelper.FromArgb(0xFF, 238, 238, 238));
map_icon.Source = new BitmapImage(new Uri(FileHelper.getIconPath("tu.png")));
isMapVisible = false;
map_wrapper.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
else if(isPhotoVisible)
{
photo_button.Background = new SolidColorBrush(ColorHelper.FromArgb(0xFF, 238, 238, 238));
photo_icon.Source = new BitmapImage(new Uri(FileHelper.getIconPath("photo_green.png")));
isPhotoVisible = false;
image_wrapper.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
else if(isListVisible)
{
list_button.Background = new SolidColorBrush(ColorHelper.FromArgb(0xFF, 238, 238, 238));
list_icon.Source = new BitmapImage(new Uri(FileHelper.getIconPath("!2.png")));
isListVisible = false;
news_wrapper.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
}
最终,我设法修复了代码。 但是错误不在上面的代码中。 我使用了一种叫做“安全导航”的东西。 该示例显示在以下代码中:
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
rootFrame.Navigate(typeof(MainPage));
});
我还使用await
运算符处理了所有异步方法(在异步运行之前,我已经离开了其中的一些方法)。 这些改进之一修复了该错误。
我知道这比原始帖子要晚两年,但这也许会帮助某人寻找该问题的答案。 我一直从Window 10 UWP桌面应用程序获得明显的随机System.ExecutionEngineExceptions。 几天后,我找到了解决我特定问题的答案。 我使用了MVVM平台,而我的其中一个视图中的x:UID已损坏。
它应该已经: <TextBlock x:Uid =“ Battery ...
它是: <TextBlock x:Uid =“ =电池”
该错误并未标记为XAML问题,因为许多与此类似的语法错误都在其中,但是一旦我纠正了该错误,通过删除了不需要的等号,该异常就消失了。
希望这对其他人有帮助。
克莱德
也要添加到上面。 XAML引擎不检查重复的x:Uid,当我有两个同名的x:Uid时,我也收到此错误。 使整个项目中的所有x:Uid都唯一(不幸地扩展了资源文件),但这解决了所有其他问题。 希望XAML设计器检查是否存在重复的x:Uid,这是对x:Name所做的。
同样,希望它对将来的人有所帮助。
干杯,
克莱德
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.