Растровое изображение высокого разрешения вызывает исключение OutOfMemoryError, уже установлено largeHeap = true - PullRequest
0 голосов
/ 18 декабря 2018

Я уже пробовал,

<application
    android:allowBackup="true"
    android:hardwareAccelerated="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

По-прежнему выдает следующую ошибку:

java.lang.OutOfMemoryError: Failed to allocate a 552960012 byte allocation with 16777216 free bytes and 262MB until OOM
    at dalvik.system.VMRuntime.newNonMovableArray(Native Method)

Я использую gridView и помещаю адаптер с целочисленным массивом resourceId отрисовки в нем, но некоторые изИзображения с высоким разрешением в моем массиве рисования вызывают эту проблему.

Ответы [ 4 ]

0 голосов
/ 17 июля 2019

Вы должны преобразовать высокое разрешение вашего нарисованного изображения в: drawable-xxhdpi.и добавьте: android:largeHeap="true" on androidManifest.xml

Я решил мою проблему OutOfMemory с помощью этого метода

0 голосов
/ 18 декабря 2018

уменьшите изображение в вашей папке для рисования.Указывает разрешение для рисования перед помещением в папку для рисования.Также здесь есть онлайн-сайт, где вы можете уменьшить размер вашего изображения без потери разрешения изображения. Link1 и Link2

0 голосов
/ 20 декабря 2018

@ Hafeezulhaq в файле build.gradle (Module: app), в этом файле, расположенном в разделе Gradle Scripts. Вы можете поместить этот вышеупомянутый код в раздел android {...} файла.enter image description here

0 голосов
/ 18 декабря 2018

попробуйте добавить приведенный ниже код в свой build.gradle (Module: app) в android {...}, это поможет вам немного, иначе вы можете снизить качество во время загрузки изображения.

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