Flex 2コンパイラの一般的なエラーおよび既知の問題
本テクニカルノートでは、Flex 2コンパイラで判明している、Flexアプリケーションのコンパイル時にエラーを発生させる可能性がある問題について詳しく説明します。
- 175465:基本クラス内の保護された設定メソッドが派生クラス内の保護されたメンバー変数と同一名である場合、コンパイラでエラー報告が行われないために、次のようなランタイムエラーが発生します。
VerifyError: Error #1107: The ABC data is corrupt, attempt to read out of bounds - 174533:エスケープされていない
\nがリソースバンドルプロパティファイル内にあると、生成されたコードに戻るというコンパイラエラーが発生します。Message: Syntax error: A string literal must be terminated before the line break. - 175233:リソースバンドルプロパティファイルがUnicodeでエンコードされている場合、混乱を招くエラーがコンパイラで発生することがあります。例:エラー:
Syntax error: input ended before reaching the closing quotation mark for a string literal
この場合、すべての文字列をLatin-1文字または標準ユニコード(UTF-8)でエンコードする必要があります。 - 170249:mx:Bindingタグのソースとバインド先のオブジェクトが一致していないと、コンパイル警告やエラーが発信されず、結果的にランタイムエラーが生じます。
- 172353:アプリケーションにおける国の特定に
Locale.getCurrent(Application.application.systemManager).country
を使用する場合、ロケールがコンパイラオプションとして処理されなかったアプリケーションではランタイムエラーが発生します。例:
TypeError: Error #1009: Cannot access a property or method of a null object reference - 169682:デバッグ中に、「For」ループのボディが1行だけしかない場合、単一のステッピングがループ全体をまたいでしまうという問題が発生します。
- 171214:インタフェイスを実装するクラスに対し、そのメソッド中のデフォルト値をインタフェイスのメソッドと一致させるよう、コンパイラが要求しないという問題が生じます。
- 174646:クラスに、アクセスコントロールのネームスペース属性が異なるアクセッサ機能(例えば保護されたsetterとパブリックなgetterなど)が含まれている場合、これらのいずれかを使用するとコンパイルタイムエラーが発生することがあります。例:
Compiler-Error 1000: Ambiguous reference to myVar
これを回避するには、getterまたはsetter機能の名前を変更して不一致を解消します。 - 175271:辞書でMethodClosuresが正しく処理されないために、同一の機能を持つ2件の辞書登録が可能になる場合があります。回避策としては、ある変数を宣言し、それをクロージャにアサインして使用し続ける方法があります。
- 175264:コンパイラ警告を生成するクラスをインスタンス化するアプリケーションをコンパイルした場合に、同じコンパイラ警告が何度も現われて、問題のクラスへの参照を削除しても解消しないことがあります。この場合、クリーンなビルドを行うとコンパイラ警告は表示されなくなります。
- 171221:mxmlコード内に構文エラーを含んだActionScript式があると、mxmlコンパイラがスタックトレースを生成します。次に例を示します。
<?xml version="1.0" encoding="iso-8859-1"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:TextInput id="ti" text="{String(new Date()}"/> </mx:Application> - 172876:Flexアプリケーションモデルの基本クラスや、またはDisplayObjectといったFlash APIクラスですでに使用されている変数名を、コンパイラに使用すると隠れたエラーが発生します。次に例を示します。
Access of possibly undefined property x through a reference with static type String.
Access of possibly undefined property y through a reference with static type String.
Access of possibly undefined property text through a reference with static type flash.display:DisplayObject - 174788:追加コンパイルで、リソースバンドルプロパティファイルをアップデートした後にエラーが発生します。例:エラー:
Unable to resolve a class for ResourceBundle: TestResources_properties
Flex Builderでは、エラーの削除にはプロジェクトのクリーンアップが必要です。
| 最終更新日: | 2006年6月26日 |
|---|