Емулятору Android не вдалося виділити пам'ять 8


157

Коли я намагаюся запустити свій емулятор WXGA800 від Eclipse, він видає подібну помилку

Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Я також перевірив наступні посилання

Не вдалося виділити пам'ять: 8

Android: не вдалося виділити пам'ять

Я спробував зменшити розмір оперативної пам’яті в емуляторі та збільшити величину Java і збільшити розмір, але все ж я зіткнувся з тією ж помилкою.


спробуйте встановити роздільну здатність вручну, замість цього використовуйте вбудовану шкіру.
SteveR

Будь ласка , перевірте мій відповідь тут: stackoverflow.com/a/14420779/1993898
Prymaldark


Класно. Я написав це саме питання менш красномовно і змусив людей проголосувати його. Я сподіваюсь, що десь тут є чудова відповідь. Я намагаюся наслідувати Samsung Galaxys за допомогою підтримки S-Pen, і вони також перевищують можливості емулятора.
Синтія V

Відповіді:


410

Оновлення : Починаючи з Android SDK Manager 21 версії, рішення полягає в редагуванні C:\Users\<user>\.android\avd\<avd-profile-name>.avd\config.iniта зміні значення

hw.ramSize=1024 

до

hw.ramSize=1024MB

Android 4.2 API 17

Емулятор дійсно повільний, сподіваємось, що незабаром вони випустять зображення Intelвикористовуйте нові зображення API17 Intel x86, якщо ви хочете змінити його ( HAXM , конфігурація )


Раніші Android SDK Manager випускали:

Була така ж проблема з вбудованою шкірою WXGA800. Я працював, редагуючи налаштування віртуального пристрою на:

  • Цільовий 4.0.3 API 15 / 4.1.0 API 16
  • SD-карта 300MiB
  • Роздільна здатність 1280 x 800 (встановлюється вручну - не вбудовані)
  • Розмір рамки пристрою 1024 МБ (до числа додано МБ)
  • Абстрагований РК 160

Тут конфігурація мого планшета для 4.1.0 API 16 C:\Users\<user>\.android\avd\<avd-profile-name>.avd\config.ini

hw.lcd.density=160
sdcard.size=300M
skin.path=1280x800
skin.name=1280x800
hw.cpu.arch=arm
abi.type=armeabi-v7a
hw.cpu.model=cortex-a8
vm.heapSize=48
hw.ramSize=1024MB
image.sysdir.1=system-images\android-16\armeabi-v7a\

Ця конфігурація показує і програмні ключі Скріншот емулятора Android 4.1 1280x800 @ 160


1
Я відчуваю себе трохи дурним за те, що не намагався цього робити раніше!
caiocpricci2

2
+1 Я взяв цю пораду, а потім запустив емулятор з командного рядка, щоб змусити це працювати. Сподіваюсь, Ксав'єр незабаром врятує нас від цієї в’ялості ....
OceanLife

9
Я зробив помилку, зменшивши "Варіант пам'яті: ОЗУ" до 512 і встановивши розмір SDcard до 300MiB.
Хтось десь

3
Серйозно, яка дурна помилка ... / facepalm Принаймні я зараз можу прогресувати! Дякую!
mrswadge

2
Ого. це жахливо. офіційний пакет SDK та тестування не справляється з цим правильно? ви повинні вручну редагувати файли .ini, і це вже майже рік? це божевільно.
matt lohkamp

67

Це наступне рішення працювало для мене. У наступному файлі конфігурації:

C:\Users\<user>\.android\avd\<avd-profile-name>.avd\config.ini

Замініть

hw.ramSize=1024

від

hw.ramSize=1024MB

1
Не знаю, чому, але це виправило. Спасибі
schar

1
Добре місце, це повинна бути помилка ... Я дотримувався конвенції про файли і просто використав M, який також працював.
HGPB

17
Щось жалюгідне з боку Google, насправді. Вони не тестують?
Корі Трез

+1 Це працює для мене. Можливо, це тому, що коли я вказав розмір барана, я вибираю 1 ГБ.
Eng.Fouad

4
В іншій відповіді хтось стверджував, що "MB" насправді не розпізнається, і зміна з 1024 на 1024MB насправді зменшує пам'ять до 256 МБ, яка за замовчуванням, і тому вона починає працювати. Джерело: stackoverflow.com/questions/7222906/failed-to-allocate-memory-8
Юха Palomäki

9

У моєму випадку, рішення було не тільки змінити , config.iniале і hardware.iniдля конкретної шкіри від hw.ramSize=1024до hw.ramSize=1024MB.

Щоб знайти hardware.iniфайл:

  1. Відкрийте config.iniі знайдіть skin.path.
  2. Потім перейдіть до папки, де знаходиться sdk для android.
  3. Відкрийте шлях, як це: android-sdk\platforms\android-15\skins\WXGA720.
  4. Всередині цієї папки ви знайдете hardware.ini.
  5. Змінити hw.ramSize=1024на hw.ramSize=1024MB.

2
працював на мене. Я не знаю, чому люди не люблять вашу відповідь. Дякую!
Вечеслав Гайдарджі

5

Оновлення: Починаючи з Android SDK Manager 21 версії, рішення полягає в редагуванні C: \ Users \ .android \ avd \ .avd \ config.ini та зміні значення

hw.ramSize = 1024 до

hw.ramSize = 1024 Мб

АБО

hw.ramSize = 512 Мб


3

Ця помилка виникає, якщо встановити оперативну пам'ять AVD на все, що більше, ніж один найбільший блок безперервної пам'яті, який емулятор може виділити. Закрийте будь-яку оперативну пам'ять, важку, запускайте емулятор, запускайте все, що вам потрібно. У попередній відповіді я обмежив це зображеннями x86 за допомогою IntelHAXM, але це насправді стосується всіх типів емуляторів.


3

У налаштуваннях AVD: змініть параметр CPU / ABI на MIPS. Це працювало для мене


1

У мене була така ж проблема, і в результаті проблема вийшла в розмірі оперативної пам’яті: мабуть, 1024 (або будь-який розмір) відрізняється від 1024 МБ. Переконайтесь, що ви вказали одиниці, і вони повинні працювати для вас.


1

Зміна ramSize у config.ini файл для мене не працював.

Я змінив розмір SD-картки на 1000 МіБ у вікні Редагування віртуального пристрою Android ... Це спрацювало! :)


Ви впевнені, що ваша відповідь стосується проблеми? Оскільки, схоже, проблема стосується оперативної пам'яті, яка не зміниться, якщо змінити розмір SD-карти.
укладальник класів

0

Перейдіть до редагування віртуальних пристроїв Android і змініть параметр 1024 в розділі "Параметри пам'яті" на 768. Якщо воно все ще не працює, продовжуйте йти все нижче і нижче.


0

Зменшення розміру ОЗУ в налаштуваннях AVD працювало на мене. Уповільнений AVD може з'їсти багато оперативної пам’яті, тому тримати його як мінімум можливо.



0

Спробуйте це, якщо інші відповіді не допомогли вам.

Для мене це сталося для Емулятора API 27.

Емулятор API 26 працював чудово. Тому я спершу запустив Емулятор API 26, а потім закрив його.

Тоді я запустив Емулятор API 27, і він працював без помилок взагалі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.