繁体   English   中英

Windows 10设备上的System.ExecutionEngineException

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM