最新のIT技術を駆使して音楽関連サービスを展開しています。日々の活動内容から得た知識をお届けする開発ブログです。BitmapB!はじめにNX開発推進部Androidアプリ開発グループの寺島です。今回はAndroidアプリ開発をしていて起こった事をもとに自分が学んだ内容をまとめました。いろいろなアプリで起こり得る事象だったので、ぜひ参考にしてみてください。事象発覚ある日、いつものように開発を進めていると1件のSlackが飛んできました。【確認環境】---------確認端末は社用携帯のarrowsF51B最新アプリver-------------ご確認お願いできますでしょうか。(確認する限り音源は大丈夫でビデオと画像をアルバムタブ内で押下すると落ちる。↓アルバムタブを開くとジャケ写が表示されない商品がある状態&特定商品押下でアプリが落ちるアプリ上に楽曲が表示されるが、タップする時にアプリがクラッシュしてしまうという報告でした。所有していたため、楽曲の再生を試したのですが、再現せずでした。そのため、特定商品の押下でクラッシュするのは間違いなさそうでした。報告いただいた方にクラッシュの詳細を聞いていきました。特定の商品のジャケットが表示されるタイミング以上の情報をもとに、画像処理に問題がありそうだという事にもあたりをつけながら、より詳しい原因の究明をしていくことにしました。原因は何か?クラッシュを解消するために、チーム内でより詳しい原因を調べました。Crashlyticsのログにたどりつきました。Crashlyticsでのクラッシュレポートに関する報告です。Crachlyticsは、アプリを使用しているユーザのクラッシュを集計することができます。端末のOSver上記のような要素から絞り込む必要があります。今回の場合、以下の要素でクラッシュを特定することができました。F51Bという端末でクラッシュが起きていたクラッシュの発生タイミングその際に、表示されていたクラッシュの詳細が上記の内容でした。Crashlyticsでエラーの詳細を確認できたことで、早急に大まかな原因を突き止めることができました。内容を読むと、Bitmapの表示時にクラッシュしていることが分かりました。Bitmapの表示エラーについてBitmapについてBitmapは、ラスタ画像と呼ばれていて、画像をピクセルと呼ばれる複数のドットで表現する画像形式です。ピクセル密度をサポートする)図を見た時に画像が格子状になっていることが分かると思います。このように画像は複数の四角から形成されていて、そのうちの1つをピクセルと言います。ピクセルは、必ず1色を示しています。この1色を表す仕組みは様々ありますが、今回はRGBAを取り上げます。その他の色の仕組みは調べてみてください。RGBAは、Red(赤)・Green(緑)・Blue(青)・Alpha(透明度)を表しています。これらの値は0~255の値で度合いが示されます。下の色は以下のように示します。(今回は透明度は無しとしてます。)このようにピクセル1つの色が決められます。