2011-09-23 12 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/"; 

문제는 내가 MANAGE를 초기화 MAIN 일정이 아닌 컴파일 시간을 사용하는 것이 었습니다. 이 변수를 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

글쎄, 그냥 괜찮아 컴파일하고, 플래시 빌더의 구문 하이 라이터가 아무것도 표시하지 않습니다. 나는 그것이 0 행의 이유는 Login.mxml 컴포넌트의 초기화와 설정 중에 예외가 발생하고 있다고 생각한다. – deontologician

+0

어도비 라이브러리에 문제가 없다고 말하면 절 신뢰 해주십시오. Login.mxml을 게시하십시오. –

+0

아, 알아 냈습니다. –

관련 문제