AIRアプリ作成時、PCでは大丈夫だが、端末では動作しなかった件
先日「みんなのしょうぎ」をリリースしましたが、その際、端末チェックをしてたときに、PCのプレビューでは大丈夫だったのに、端末になったら動かなくなった事象があったので紹介。
原因はおそらくランタイムがPCと端末とで異なるからだろうけど、下手すると気づかないので共有します。
functionのシグネチャ(引数の型や引数の数の組み合わせ)が呼ぶ側と呼ばれる側とで違いがあるとプレビューではそのまま動作し、端末ではそこでエラーになるということがありました。
普通シグネチャが違ったらコンパイルエラーになってほしいところですけどね。
おまけとしてよく出会うエラーとその原因と対処について
Error #2044: Unhandled ioError:. text=Error #2032: Stream Error
URLLoaderを使ったloadをするときに解析できない出力があった場合。
例)loader.dataFormat = URLLoaderDataFormat.VARIABLES;というようにTextでの出力が前提であるのに
サーバでContents-typeの出力がtext/htmlなどであった場合。
TypeError: Error #2007: Parameter text must be non-null.
FlashではTextにはnullを入れられないようです。
などとなっていました。textにダイナミックな値を入れようとすると、よくお世話になるエラーですね。
nullなら""にするようにでもしておくか、もしくはデバッグしやすいように、そのままNULLを入れようとして、システム落としましょう。
ステートメントのターゲットが見つかりませんでした
continueがforループ内になかった。なんとも基本的なミスだったが、エラーメッセージの意味がわからなすぎる。その他基本的なミスのときにこのエラーが出るかと思います。
Type Coercion failed: cannot convert
同一MC内に同じ名称のMCが存在する。ライブラリ上からMCを複製して、別のMCに変更。