AdobeのAIRで作ったAndroidアプリをリリースしていたのだが、日本語が表示されない不具合に遭遇した。
手持ちの機種のOSバージョン「2.2」「2.3」「4.2」では問題が無かったので全く気付かなかったのだが、レビュー欄にて報告されており、同機種を入手して不具合を確認。
色々調べてみたので、メモしておく事にします。
ちなみに環境は Windows7 の Flash CS6 です。
どうやら Android4.4(コードネーム「KitKat」)以降のOSで発生している問題で、テキスト欄にデバイスフォントを使用している場合、全角文字が表示されないらしい。
現時点(執筆時)での AIRバージョンは「15.0.0.302」で一応改善は施されているものの、依然一部の機種にて表示されないとの事。
ネットで調べた情報なので細かい情報の真偽は分かりませんが、少なくとも入手した「SO-02F」での不具合は確認できています。
解決案として、私が採用したのは、フォントの埋め込みです。
静止テキスト、ダイナミックテキスト、テキスト入力の全てを埋め込みに変更。
ちなみに、フォントファミリーの「_ゴシック」を、埋め込んだフォントに変更しても、依然として表示されなかったので、????となりましたが、アンチエイリアスの項目が「デバイスフォントを使用」となっていたのが原因でした。ここも変更してやる必要があります。
アプリの容量が増えてしまいますが、これで概ね対応出来ました。
しかし、他にも問題がありました・・・・。
コンボボックス等のコンポーネントを使用している場合、表示フォントを指定しても何故かデバイスフォントになります。
PCでのプレビューでは指定されたフォントになるのですが、Android側ではデバイスフォントで表示されます。
これは、4.4以降の問題では無く、2.3や4.2端末でも同様でした。
これはどうすりゃ良いのか悩んだ結果、コンボボックスに代わるものを自作しました。
という訳で、何とかなったくさい。多分・・・・・。