1

my app crashes everytime i start it on a samsung s7. On other devices i worked with it worked fine every time. It tells me, that a bitmap is to big:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.slartibartfast.kslordered, PID: 4800
              java.lang.RuntimeException: Canvas: trying to draw too large(106616832bytes) bitmap.
                  at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:229)
                  at android.view.RecordingCanvas.drawBitmap(RecordingCanvas.java:97)
                  at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:529)
                  at android.widget.ImageView.onDraw(ImageView.java:1367)
                  at android.view.View.draw(View.java:20370)
                  at android.view.View.updateDisplayListIfDirty(View.java:19315)
                  at android.view.View.draw(View.java:20093)
                  at android.view.ViewGroup.drawChild(ViewGroup.java:4421)
                  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)
                  at android.support.constraint.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1966)
                  at android.view.View.draw(View.java:20373)
                  at android.view.View.updateDisplayListIfDirty(View.java:19315)
                  at android.view.View.draw(View.java:20093)
                  at android.view.ViewGroup.drawChild(ViewGroup.java:4421)
                  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)
                  at android.view.View.updateDisplayListIfDirty(View.java:19306)
                  at android.view.View.draw(View.java:20093)
                  at android.view.ViewGroup.drawChild(ViewGroup.java:4421)
                  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)
                  at android.view.View.updateDisplayListIfDirty(View.java:19306)
                  at android.view.View.draw(View.java:20093)
                  at android.view.ViewGroup.drawChild(ViewGroup.java:4421)
                  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)
                  at android.view.View.updateDisplayListIfDirty(View.java:19306)
                  at android.view.View.draw(View.java:20093)
                  at android.view.ViewGroup.drawChild(ViewGroup.java:4421)
                  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)
                  at android.view.View.updateDisplayListIfDirty(View.java:19306)
                  at android.view.View.draw(View.java:20093)
                  at android.view.ViewGroup.drawChild(ViewGroup.java:4421)
                  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)
                  at android.view.View.draw(View.java:20373)
                  at com.android.internal.policy.DecorView.draw(DecorView.java:980)
                  at android.view.View.updateDisplayListIfDirty(View.java:19315)
                  at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:686)
                  at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:692)
                  at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:800)
                  at android.view.ViewRootImpl.draw(ViewRootImpl.java:3496)
                  at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3283)
                  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2818)
                  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1780)
                  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7827)
                  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
                  at android.view.Choreographer.doCallbacks(Choreographer.java:723)
                  at android.view.Choreographer.doFrame(Choreographer.java:658)
                  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
                  at android.os.Handler.handleCallback(Handler.java:789)
                  at android.os.Handler.dispatchMessage(Handler.java:98)
                  at android.os.Looper.loop(Looper.java:164)
                  at android.app.ActivityThread.main(ActivityThread.java:6944)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

I'm using images to get shown in a imageView. Could you help me? Could you help me?

SlartiDev
  • 49
  • 1
  • 9
  • You're getting error because, You're trying to draw image of very high resolution to your canvas. Please share code, so that i can help. – Jeel Vankhede Sep 21 '18 at 08:02
  • Possible duplicate of [Android Studio Canvas: drawing too large bitmap](https://stackoverflow.com/questions/40835514/android-studio-canvas-drawing-too-large-bitmap) – TDG Sep 21 '18 at 08:25

2 Answers2

0

This normally occurs when Image is exactly what logs say.Its too big.What I do is set all variations of the image i.e for hdpi,mdpi,xhdpi,xxhdpi and xxxhdpi. So while adding your image files, make sure there's one for each so each device oout there chooses the best density for itself.

Your images folder should look like this

image

Kennedy Kambo
  • 372
  • 4
  • 24
0

The samsung s7 you tested perhaps has lower resolution than other devices.

I suggest you compress this image, 106616832bytes is definitely too big.

navylover
  • 12,383
  • 5
  • 28
  • 41