私のゲームでGoogle Playコンソールからクラッシュレポートが出力されることがあり、修正が難しい場合があります。それは比較的まれですが、これまでに数少ない1つ星レビューの原因です。グラフィックスをRGB_565に変換する際のRuntimeException
このコードは何千回もうまく動作しますが、致命的なエラーが発生することはまれです(起動時にユーザーがすぐにクラッシュする)。 throwIfCannotDrawが出て行く理由はわかりません。
大変助かりました!
編集:開始時にタイミング問題が発生する可能性があり、広告ネットワーク、アナリティクス、Google Playサービスなどの読み込み/初期化など、他のスレッドで負荷がかかると思います。 Androidのバージョンが原因ではないよう
Galaxy Tab Pro 12.2 (v2wifi) 6 14.0%
Galaxy Tab Pro 10.1 (picassowifi) 5 11.6%
Galaxy Tap Pro 8.4 (mondrianwifi) 4 9.3%
Galaxy Note 10.1 (lt033g) 3 7.0%
Galaxy TabS 8.4 (klimtwifi) 3 7.0%
Galaxy S7 Edge (hero2lte) 3 7.0%
Zmax Pro (urd) 2 4.7%
Galaxy Note5 (noblelte) 2 4.7%
:
Android 5.1 14 32.6%
Android 7.0 12 27.9%
Android 4.4 7 16.3%
Android 6.0 6 14.0%
コード:
bitmapTMP1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.map_charset);
bitmapTMP2 = Bitmap.createScaledBitmap(bitmapTMP1,
(int) (MAP_CHARSET_SX * scaleFactor),
(int) (MAP_CHARSET_SY * scaleFactor),
false);
bitmapTMP1.recycle();
bitmapMapCharset = Bitmap.createBitmap(bitmapTMP2.getWidth(), bitmapTMP2.getHeight(), Bitmap.Config.RGB_565);
Canvas c = new Canvas();
c.setBitmap(bitmapMapCharset);
c.drawBitmap(bitmapTMP2,0,0,null); //HERE - Causes RuntimeException sometimes
bitmapTMP2.recycle();
java.lang.RuntimeException:
at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1301)
at android.graphics.Canvas.drawBitmap(Canvas.java:1356)
はここでクラッシュを引き起こして上位のいくつかのデバイスです