Подтвердить что ты не робот

Ошибка вне памяти в эмуляторе Android, но не на устройстве

В Android-эмуляторе, когда я выхожу из своего приложения и запускаю его сразу, я получаю

OutOfMemoryError: bitmap size exceeds VM budget.

Но на самом устройстве этого не происходит. Почему?

4b9b3361

Ответ 1

В эмуляторе размер максимальной кучи по умолчанию составляет около 13 МБ.

На устройстве это зависит от телефона и версии Android. На моем Motorola Droid максимальный размер кучи составляет около 21-22 МБ, а на моем HTC Desire - около 32 МБ.

Вот почему у вас авария на эмуляторе, а не на вашем устройстве.

Если вы хотите контролировать размер кучи приложения, вы можете вызвать аналогичный метод:

protected void displayMemoryUsage(String message) {
    int usedKBytes = (int) (Debug.getNativeHeapAllocatedSize() / 1024L);
    String usedMegsString = String.format("%s - usedMemory = Memory Used: %d KB", message, usedKBytes);
    Log.d(TAG, usedMegsString);
}

Ответ 2

Увеличьте ОЗУ AVD и максимальный размер кучи VM-VM в опциях VM.

Для этого перейдите к

Окно → AVD Manager → Виртуальные устройства → Изменить.

Ответ 3

Вам нужно увеличить размер кучи для эмулятора - это сработало для меня я увеличил его от от 16 М до 32 М

Ответ 4

Вот ленив, как найти варианты манипулирования heapsize для эмулятора от Andriod studio 1.2.0

  • Инструменты меню- > Android- > AVD Manager
  • изменить выбранное виртуальное устройство
  • нажмите дополнительные настройки и прокрутите вниз.

Change VM heap in android studio

Ответ 5

Возможно, это потому, что у вас на устройстве больше памяти, чем у вашего эмулятора. Этот вопрос SO показывает вам, как увеличить размер вашего эмулятора.

Кроме того, вы можете увеличить размер кучи Java VM.

Ответ 6

Увеличьте размер выделенной памяти...