2011-09-23 78 views
1

最近,我突然開始從Flex庫中引發當前異常。我正在處理的文件(Login.mxml)在加載時突然開始拋出這個異常。從StaticPropertyWatcher.as拋出異常

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at mx.binding::StaticPropertyWatcher/updateParent()[E:\dev\4.x\frameworks\projects\framework\src\mx\binding\StaticPropertyWatcher.as:150] 
    at _components_LoginWatcherSetupUtil/setup() 
    at components::Login()[C:\Users\username\Documents\MP_MAIN\src\components\Login.mxml:0] 
    <snip ...> 
    at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:700] 
    at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072] 

在調試器中運行它並沒有給我行我的代碼是錯誤的,但它確實給我StaticPropertyWatcher線。具體做法是:

override public function updateParent(parent:Object):void 
{ 
    // The assumption is that parent is of type, Class, and that 
    // the class has a static variable or property, 
    // staticEventDispatcher, of type IEventDispatcher. 
    parentObj = Class(parent); 

    if (parentObj["staticEventDispatcher"] != null) /* Exception thrown from here */ 
    { 
    ... 

調試器顯示parentObj確實是零,解釋該異常的直接原因,但我似乎無法確定更深的原因(即我做錯了什麼)。從_components_LoginWatcherSetupUtil類中調用updateParent方法,但調試器說沒有代碼,所以我寫的內容和導致異常的內容之間的關鍵連接丟失了。

所以,基本上,我甚至不能調試這個。如何解決發生問題的任何想法?

+1

有時可以使調試運行過去的錯誤,如果你能做到這一點,並使用踏進按鈕,它會帶你回去到調用拋出錯誤的方法的那一行。 –

回答

0

經過費力地加回自上次提交到我的存儲庫以來所做的每一項更改,我追查了這個問題的罪魁禍首。基本上,有用於跟蹤服務器的地址是這樣幾個靜態變量:

public static var MAIN:String = "http://192.168.1.1/"; 
public static var MANAGE:String = MAIN + "Manage/"; 

的問題是,我使用非編譯時常MAIN初始化MANAGE。將這些變量更改爲const可以解決問題。

public static const MAIN:String = "http://192.168.1.1/"; 
public static const MANAGE:String = MAIN + "Manage/"; 

希望這將有助於其他人碰到這個問題來

0

您的錯誤報告爲Login.mxml:0
當我將第0行看作錯誤時,它告訴我某種語法錯誤。打開字符串也許?
我會建議看看該文件,看看它是否設置正確。

發佈完整的Login.mxml文件,讓我們看看它。

+0

編譯得很好,而Flash Builder中的語法突出顯示器沒有顯示任何內容。我認爲它的第0行的原因是在Login.mxml組件的初始化和設置過程中發生異常。 – deontologician

+0

當我告訴你問題不在Adobe庫中時,請相信我。請發佈Login.mxml –

+0

啊,我看到你明白了 –