Ошибка вне памяти в эмуляторе Android, но не на устройстве
В Android-эмуляторе, когда я выхожу из своего приложения и запускаю его сразу, я получаю
OutOfMemoryError: bitmap size exceeds VM budget.
Но на самом устройстве этого не происходит. Почему?
Ответы
Ответ 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
Увеличьте размер выделенной памяти...