GADGET FACTORY 雑記帳

iPhone アプリ / Flash コンテンツ /Adobe AIR などを開発していて気づいたことや備忘録、TIPS、HACKなど

Adobe AIR で Android の一部の端末で文字が表示されないことがある

Adobe AIRにて開発したアプリにおいて、Androidの一部端末で、文字が表示されない現象が発生しております。

同一端末でも、発生する人と発生しない人がいたりします。

同じ Android の OSバージョンでも、発生する端末と、発生しない端末が存在していたりします。

我が家にある SONYXperia Z1」(au SOL23)では、現象が確認できませんでした。

しかし、同じ SONYXperia Z1」でも、現象が発生している人がいたりします。

現象として、確認できないものについては、対応したとしても対応できているかは分からなかったりします。

ところが先日、同現象が発生している端末を使う機会があったので、それについて調査してみました。


現象が発生する条件

調査した結果、発生しているのは、Androidの OSのアップデートを行った端末のようです。

例えば、SONYXperia Z」は、発売時の Android のOSバージョンは 4.1.2。
この端末を、現時点(2015年6月現在)での最終アップデートまでバージョンアップすると、Android の OSバージョンが 4.4.2 になります。

このOSアップデートを行った端末では、一部の文字が表示されない不具合が発生します。

表示されない文字について

表示されない文字は、日本語でデバイスフォントを利用して表示している部分となります。

日本語のかなや漢字に混じって、文章の途中に入ってくる半角英数文字部分については、その部分だけが表示されます。

デバイスフォントとは、Flash のテキストボックスにおいて、フォントファミリーの指定欄で「_ゴシック」「_等幅」「_明朝」で指定されたフォントです。

対応策

対応策としては、日本語表示を行うテキストボックスには、デバイスフォントを利用せずに、フォントの埋め込みを行って文字を表示するしかないと思われます。

フォントファミリーの指定で、利用したい特定フォントを選択(ex:ヒラギノ角ゴ ProN)した後、「埋め込み」でそのテキストボックスに表示する予定の文字を全て埋め込むことで対応できます。
ここで指定された文字のみが、埋め込まれるので、指定しなかった文字については、表示されません。
テキストボックス内で、不特定の文字が表示される場合は、文字の範囲で「すべて」を選択しておく方が安全かもしれません。

また、この時、「アンチエイリアス」の項目は「デバイスフォントを使用」以外の項目を選択しておかないと、文字が表示されません。

フォントの埋め込みによって、アプリの容量は、その分だけ増加してしまいます。