при запуске приложения на устройстве Samsung происходит сбой со следующей ошибкой - PullRequest
0 голосов
/ 21 сентября 2018

мое приложение вылетает каждый раз, когда я запускаю его на samsung s7.На других устройствах, с которыми я работал, каждый раз работал нормально.Это говорит мне, что растровое изображение слишком велико:

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)

Я использую изображения для отображения в imageView.Не могли бы вы помочь мне?Не могли бы вы помочь мне?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Возможно, протестированное вами samsung s7 имеет более низкое разрешение, чем другие устройства.

Я предлагаю вам сжать это изображение, 106616832байт определенно слишком велико.

0 голосов
/ 22 сентября 2018

Обычно это происходит, когда изображение именно то, что говорят журналы. Оно слишком большое. Что я делаю, это устанавливаю все варианты изображения, например, для hdpi,mdpi,xhdpi,xxhdpi and xxxhdpi.Поэтому при добавлении файлов изображений убедитесь, что по одному для каждого из них каждое устройство выбирает наилучшую плотность для себя.

Ваша папка с изображениями должна выглядеть следующим образом

image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...