XAML in Xamarin.Forms 基礎篇 電子書

特別說明

2017/04/21

Xamarin應用程式,一執行就閃退的解決方案

在這個星期,遇到兩次這樣的問題,花了一些時間來處理這類問題,不過,其實這樣的問題,有一個比較簡潔的處理方式。
當您的應用程式一啟動之後,就發現會自然的閃退,這個時候,若您有設定了中斷點,不論您設定在哪個地方(原生專案或者核心PCL專案內),似乎,您的程式都無法在這些中斷點停下來,還是會自動閃退。
通常來說,您會看到底下的錯誤訊息
Objective-C exception thrown.  Name: NSInternalInconsistencyException Reason: Application windows are expected to have a root view controller at the end of application launch
不論您的程式是剛剛開始進行開發,還是已經寫了很多內容了,這個時候,請都不要緊張,我強烈建議您採用 刪去法 開始進行這類問題除錯。
首先,請先建立一個空白的 ContentPage,並且在 App.xaml.cs 內,指定 MainPage 到這個 ContentPage;並且,再度執行一次,看看是否可以正常運作。
若您還是遇到不幸的情況,請在原生專案的進入點方法內,看看是否有執行甚麼初始化的方法,若有的話,請記得將其註解起來;接著再度執行一次,看看能否正常執行。
經過這樣幾次,不斷地將程式碼刪去之後,應該可以找到問題所在。
我遇到的兩個情況分別是:
  1. XAML 語法錯誤,導致執行時期,要顯示這個頁面的時候,造成執行時期的閃退。
  2. 有個靜態屬性,當進行物件值初始化的時候,發生了異常,導致程式直接閃退;當然,這個類別內的其他靜態屬性物件,也無法被存取了。

沒有留言:

張貼留言