0

I'm getting the following crash report from Play Console:

Fatal Exception: java.lang.IllegalArgumentException: bitmap size exceeds 32 bits
       at android.graphics.Bitmap.nativeCreate(Bitmap.java)
       at android.graphics.Bitmap.createBitmap(Bitmap.java:942)
       at android.graphics.Bitmap.createBitmap(Bitmap.java:913)
       at android.graphics.Bitmap.createBitmap(Bitmap.java:880)
       at com.androidapp.test.Surface.surfaceChanged(Surface.java:145)
       at android.view.SurfaceView.updateWindow(SurfaceView.java:730)
       at android.view.SurfaceView.setFrame(SurfaceView.java:378)
       at android.view.View.layout(View.java:16935)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
       at android.view.View.layout(View.java:16939)
       at android.view.ViewGroup.layout(ViewGroup.java:5409)
       at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077)
       at android.view.View.layout(View.java:16939)
       at android.view.ViewGroup.layout(ViewGroup.java:5409)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
       at android.view.View.layout(View.java:16939)
       at android.view.ViewGroup.layout(ViewGroup.java:5409)
       at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1702)
       at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1556)
       at android.widget.LinearLayout.onLayout(LinearLayout.java:1465)
       at android.view.View.layout(View.java:16939)
       at android.view.ViewGroup.layout(ViewGroup.java:5409)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
       at android.view.View.layout(View.java:16939)
       at android.view.ViewGroup.layout(ViewGroup.java:5409)
       at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1702)
       at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1556)
       at android.widget.LinearLayout.onLayout(LinearLayout.java:1465)
       at android.view.View.layout(View.java:16939)
       at android.view.ViewGroup.layout(ViewGroup.java:5409)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
       at android.view.View.layout(View.java:16939)
       at android.view.ViewGroup.layout(ViewGroup.java:5409)
       at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2464)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2167)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1301)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7016)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
       at android.view.Choreographer.doCallbacks(Choreographer.java:590)
       at android.view.Choreographer.doFrame(Choreographer.java:560)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6946)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

This is too weird since the following issue is occurring on some specific devices only. Specially the Samsung SM-J200G & Vivo V3

Here's my code bock inside the surfaceCreated() method,

@Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        bitmap.eraseColor(Color.TRANSPARENT);

        drawCanvas.setBitmap(bitmap);

        if (initialBitmap != null) {
            drawCanvas.drawBitmap(initialBitmap, 0, 0, null);
        }
    }

Just to clear the confusion, I'm creating an empty bitmap rather than creating from file which is referred to the following question,

Mysterious stacktrace in Android developer console (bitmap size exceeds 32bits)

Any ideas on what could be the possible cause?

Community
  • 1
  • 1
Falling Into Infinity
  • 697
  • 3
  • 13
  • 34
  • There're lots of similar questions. Did you check that solutions? Here is one http://stackoverflow.com/questions/9370145/mysterious-stacktrace-in-android-developer-console-bitmap-size-exceeds-32bits – eleven Jan 28 '17 at 17:27
  • @eleven Yes, none of them matches my scenario which is using a SurfaceView. – Falling Into Infinity Jan 28 '17 at 17:29
  • You mean if you call `Bitmap.createBitmap()` outside of `surfaceChanged` with same params there is no exception? – eleven Jan 28 '17 at 17:31
  • Actually the same code is running perfectly on most of the devices. Only a specific list of device throws error with the same bunch of code. – Falling Into Infinity Jan 28 '17 at 17:40
  • Possible duplicate of [Mysterious stacktrace in Android developer console (bitmap size exceeds 32bits)](http://stackoverflow.com/questions/9370145/mysterious-stacktrace-in-android-developer-console-bitmap-size-exceeds-32bits) – eleven Jan 28 '17 at 17:41

0 Answers0