2012-11-12 35 views
0

我的Windows手機應用在加載主頁時凍結。我在主構造器上設置了斷點,它觸發了OnNavigatedTo事件,但從不觸發「加載」事件。它通過構造器中的InitializeComponent()。它會顯示啓動畫面和主頁面應用程序欄,但會凍結該點。Windows Phone App在加載主頁時凍結?

我最近重構了我的主命名空間,導致主頁面無法加載。我通過啓動對象修復了這個問題。

EVERYTHING在重構之前工作。

我應該包含哪些代碼?目前這個項目相當大,所以我不知道你真的想讓我發佈代碼。

任何想法??

+0

您可以回到重構之前,一次重做一次,直到您的項目中斷?或者你可以一點點地反轉它,直到它工作?或者這會花費太長時間? –

+0

你是否得到例外,還是隻是無限期懸掛?你是在模擬器還是在設備上? –

+0

也許包括你的XAML文件:) –

回答

2

好的,我發現這個問題。在App.Xaml.cs我做了以下關鍵錯誤:

這裏是我的代碼:

private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e) 
    { 
     // Set the root visual to allow the application to render 
     if (RootVisual != null && RootVisual != RootFrame) 
      RootVisual = RootFrame; 

     // Remove this handler since it is no longer needed 
     RootFrame.Navigated -= CompleteInitializePhoneApplication; 
    } 

這裏是什麼是應該是:

private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e) 
    { 
     // Set the root visual to allow the application to render 
     if (RootVisual != RootFrame) 
      RootVisual = RootFrame; 

     // Remove this handler since it is no longer needed 
     RootFrame.Navigated -= CompleteInitializePhoneApplication; 
    } 

ReSharper的以爲會最好先檢查RootVisual是否爲空。令人難以置信的惱人的錯誤,因爲它只會掛在啓動PNG,並從不加載,顯然是因爲RootVisual沒有被設置。

+0

哇!這確實是一個有趣的問題。感謝分享。 [順便說一下..在進行重構之前,請始終使用源代碼管理或其他備份。更好的安全比擔心;-)] – kanchirk

+0

我正在使用SVN,這是我發現它。通過回6修改和運行,直到我找到一個工作。該修訂涉及到解決方案中的幾乎每個文件,我必須通過每個文件和SVN在它和修訂版之間對它進行區分,然後測試每個更改,以查看導致它的原因。非常令人沮喪,並且基本上爲了解決這個錯誤而耗費了整整兩天的工作時間。嘖。 –

0

我以前遇到過這樣的困難。聽起來這可能是您的XAML中的一個問題,但實際上沒有解決方案就很難說清楚。

這裏有一對夫婦的事情,你可以嘗試:

  • 檢查所有的靜態/動態的資源,以確保他們都還在正常解析。
  • 檢查您正在使用的綁定和綁定轉換器是否仍然正確解析。特別是轉換器,我在過去遇到了問題。

如果您收到異常,但在代碼不依賴於特定的點:

  • 嘗試把斷點上,你可能會使用任何或所有自定義屬性。默認情況下,調試器不會進入屬性。我發現這是我自己工作中一些例外的原因。

希望這有助於!

+0

另外,它不會拋出異常。在我的MainPage代碼中擊中主構造函數並點擊OnNavigatedTo事件後,它就會掛起。如果我暫停調試器,我可以看到它不在我的代碼中。 –