簡體   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