この技術ノートでは、Flex アプリケーションをコンパイルする際にエラーが発生する可能性のある、Flex 2 コンパイラーの既知の問題について説明します。

  • 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:リソースバンドルプロパティファイルが、ユニコードでエンコードされている場合は、コンパイラーは誤解を招くエラー(例えば、エラー: Syntax error: input ended before reaching the closing quotation mark for a string literal)を生成します。
    プロパティファイル内のすべての文字列は、Latin-1 または UTF-8 でエンコードされる必要があります。
  • 170249:mx:Bindingタグのソースとコピー先に不一致オブジェクトがあるため、コンパイル警告またはエラーがスローされず、ランタイムエラーが発生します。
  • 172353:whenLocale.getCurrent(Application.application.systemManager).country
    を使用して、-locale がコンパイラーオプションとして渡されなかったアプリケーションで国を取得すると、ランタイムエラーがスローされます。(例えば、
    TypeError: Error #1009: Cannot access a property or method of a null object reference)。
  • 169682:デバッグ時に、「for」ループのボディが単一行である場合、単一ステッピングはループ全体をステップオーバーします。
  • 171214:インターフェイスを実装するクラスは、メソッド内の既定値をインターフェイスメソッドに一致させる際にコンパイラーによって必要とされません。
  • 174646:あるクラスに異なるアクセス制御名前空間属性(例えば、aprotected setter および public getter)を持つアクセサ関数が含まれている場合、そのうちの 1 つを使用するとコンパイル時エラーが発生します(例えばCompiler-Error1000: Ambiguous reference to myVar)。
    回避策は、getter 関数または setter 関数の名前を変更して不一致をなくすことです。
  • 175271:辞書が MethodClosures を正しく処理しないため、キーと同じ機能を持つ 2 つのエントリを辞書に存在させることが可能になります。回避策として、変数を宣言してクロージャに代入し、その変数をそのまま使用します。
  • 175264:コンパイラー警告を生成するクラスをインスタンス化するアプリケーションをコンパイルすると、問題のクラスへの参照が削除された後でも、同じコンパイラー警告が報告され続けます。クリーンビルド後、コンパイラー警告は報告されなくなります。
  • 171221:mxmlコードに構文エラーのある ActionScript エクスプレッションがあるとき、mxmlコンパイラーはスタックトレースを生成します。例:

    <?xmlversion="1.0" encoding="iso-8859-1"?> <mx:Applicationxmlns: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 で、エラーを取り除くためにプロジェクトをクリーニングします。

追加情報

コンパイラーエラーおよびコンパイラー警告に関する追加情報は、以下の文書に記載されています。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー