2012-01-26 15 views
0

せずに定期的に自分のアプリケーションの実行中に、私はこれがフルスタックトレースです"nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。"どんな意味のあるスタックトレース

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
at mx.managers::SystemManager/stageEventHandler()[C:\autobuild\3.4.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:5649] 

を取得します。明らかに、何か間違っていると思いますが、私は何を理解できません。 その悪い行為の起源を見つける方法はありますか?

private function stageEventHandler(event:Event):void 

    { 

     if (event.target is Stage) 

      mouseCatcher.dispatchEvent(event); // This is line 5649 

    } 

mouseCatcherは確かnullです:

EDITは私のデバッガに私のSDKソースを追加したので、私は今、それがされている行され、正確に言うことができます。現在のイベントターゲットは実際にはStageオブジェクトで、イベントタイプには"deactivate"文字列が含まれています。アプリケーションの起動時にイベントが発生すると(私はあらゆる種類のユーザーとのやり取りを試みる前に)、初期化のバグだと思いますが、どこですか?なぜ ?

+0

SystemManager.asの5649行は何ですか?それは何を参考にしていますか...何か手掛かり?私はそれほどフレキシブルではないので、私は 'SystemManager'を知らない。 – pkyeck

答えて

0

Flex 3.4 SDKを使用しているようです。アプリケーションの読み込み時にADDED_TO_STAGEイベントを待機していますか?または、ロード時にStageオブジェクトを使用して何かを行う?もしそうなら、3.4 SDK固有のバグを打つかもしれません: http://bugs.adobe.com/jira/browse/SDK-23332

もっとも明らかな解決策は、3.4 SDKをそれ以降のバージョン(3.4A、3.5、3.6)に置き換えることです。ここで行うことができます:http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3

すべてのコードは、新しいFlex 3 SDKと下位互換性があります。

1

ソースコードを見ると、これは常に最適なオプションです。 3.4 SDKはオープンソース(データビジュアライゼーションとFlash Player自体は別として)で、おそらくあなたのFlashBuilder/FlexBuilderのインストール/ sdksフォルダにすでにソースがあります。問題のファイルを見つけるには、grepまたはwindows grepを使用してください(または、あなたのボートを浮かべているものを見つける)。 SystemManagerファイルを開き、その行で何が起きているのかを確認し、メソッドへの呼び出しをチェックします(publicでgrepを再度呼び出す場合は、SystemManager内を調べる必要があるだけです)。なぜそれがこの時点になるのか理解しよう。他の人によって指摘されているように、割り当てられる前に何かにアクセスしようとしているタイミング関連の問題、この場合はSystemManager。おそらく、これは、ライフサイクルの後半にエラーを引き起こしています(initializeイベントを使用している場合、またはcreateChildrenメソッドが呼び出された後に送出されるため、createCompleteでpre-initializeを試行している場合)。

注:鉱山は

Cここに位置しています:\ CleanFS \ SDKの\フレックス\ 3.4.0.9271 \枠組み\プロジェクト\枠組み\ SRC \ MX \マネージャーバージョンとのSystemManagerの私のコピーで

私はその行番号は実行可能な行ではないブロッククロージャであるため意味を持たないので、特定のバージョンを見なければなりません。

関連する問題