Android emulator ไม่สามารถจัดสรรหน่วยความจำ 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: การจัดสรรหน่วยความจำล้มเหลว

ฉันได้ลองลดขนาด RAM ในอีมูเลเตอร์และเพิ่ม Java heapsize และ ramsize แต่ยังฉันก็พบข้อผิดพลาดเดียวกัน


ลองตั้งค่าความละเอียดด้วยตนเองแทนที่จะใช้สกินในตัว
SteveR

โปรดตรวจสอบคำตอบของฉันที่นี่: stackoverflow.com/a/14420779/1993898
Prymaldark

สำเนาที่เป็นไปได้ของการไม่สามารถจัดสรรหน่วยความจำ: 8
Peter O.

เย็น. ฉันถามคำถามเดียวกันนี้อย่างละเอียดน้อยกว่าและให้คนลงคะแนน ฉันหวังว่าจะมีคำตอบที่ดีในบางแห่ง ฉันพยายามเลียนแบบ Samsung Galaxys ด้วยการรองรับ S-Pen และพวกมันก็เกินความสามารถของอีมูเลเตอร์เช่นกัน
Sinthia 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 , การกำหนดค่า )


ตัวจัดการ SDK Android รุ่นก่อนหน้านี้:

พบปัญหาเดียวกันกับผิวหนัง WXGA800 ในตัว ฉันใช้งานได้โดยแก้ไขการตั้งค่าอุปกรณ์เสมือนเป็น:

  • เป้าหมาย 4.0.3 API 15 / 4.1.0 API 16
  • การ์ด SD 300MiB
  • ความละเอียด 1280 x 800 (ตั้งค่าด้วยตนเอง - ไม่ใช่ตัวกล้องในตัว)
  • อุปกรณ์ ram ขนาด 1024MB (เพิ่มด้วย MB ในหมายเลข)
  • จอแอลซีดีที่ถูกแยกออก 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
ฉันทำข้อผิดพลาดหายไปโดยลด "ตัวเลือกหน่วยความจำ: RAM" เป็น 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 จริงๆ พวกเขาไม่ได้ทดสอบหรือ
Cory Trese

+1 สิ่งนี้ใช้ได้กับฉัน อาจเป็นเพราะเมื่อฉันระบุขนาดหน่วยความจำฉันเลือก 1 GB
Thai.Fouad

4
ในคำตอบอื่น ๆ บางคนอ้างว่า "MB" ไม่ได้รับการยอมรับจริงและเปลี่ยนจาก 1024 เป็น 1024MB ลดหน่วยความจำจริงเป็น 256MB ซึ่งเป็นค่าเริ่มต้นและดังนั้นจึงเริ่มทำงาน ที่มา: stackoverflow.com/questions/7222906/failed-to-allocate-memory-8
Juha Palomäki

9

ในกรณีของการแก้ปัญหาคือการเปลี่ยนแปลงไม่เพียงconfig.iniแต่ยังhardware.iniสำหรับผิวจากการhw.ramSize=1024hw.ramSize=1024MB

วิธีค้นหาhardware.iniไฟล์:

  1. เปิดและค้นหาconfig.iniskin.path
  2. จากนั้นไปที่โฟลเดอร์ที่มี android sdk อยู่
  3. เปิดเส้นทางแบบนี้: android-sdk\platforms\android-15\skins\WXGA720.
  4. hardware.iniในโฟลเดอร์นี้คุณจะค้นหา
  5. เปลี่ยนไปhw.ramSize=1024hw.ramSize=1024MB

2
ทำงานให้ฉัน ฉันไม่รู้ว่าทำไมคนไม่ชอบคำตอบของคุณ ขอบคุณ!
Veaceslav Gaidarji

5

อัปเดต: เริ่มต้นด้วย Android SDK Manager เวอร์ชัน 21 วิธีแก้ไขคือ C: \ Users \ .android \ avd \ .avd \ config.ini และเปลี่ยนค่า

hw.ramSize = 1024 ถึง

hw.ramSize = 1024MB

หรือ

hw.ramSize = 512MB


3

ข้อผิดพลาดนี้จะเริ่มขึ้นหากคุณตั้งค่า AVD RAM เป็นอะไรที่ใหญ่กว่าบล็อกที่ใหญ่ที่สุดของหน่วยความจำต่อเนื่องที่อีมูเลเตอร์สามารถจัดสรรได้ ปิดทุกสิ่งที่ RAM หนักเริ่มต้นโปรแกรมจำลองของคุณเริ่มทุกอย่างที่คุณต้องการ ในคำตอบก่อนหน้านี้ฉัน จำกัด เฉพาะภาพ x86 ด้วย IntelHAXM แต่จริง ๆ แล้วเป็นกรณีสำหรับอินสแตนซ์จำลองทุกประเภท


3

ในการตั้งค่า AVD: เปลี่ยนตัวเลือก CPU / ABI เป็น MIPS มันใช้งานได้สำหรับฉัน


1

ฉันมีปัญหาเดียวกันและสิ่งที่เป็นปัญหาคือขนาด RAM: เห็นได้ชัดว่า 1024 (หรือขนาดใดก็ตาม) แตกต่างจาก 1024MB ตรวจสอบให้แน่ใจว่าคุณระบุหน่วยและควรทำงานให้คุณ


1

การเปลี่ยน ramSize ในไฟล์ config.ini ไม่ได้ผลสำหรับฉัน

ฉันเปลี่ยนขนาดการ์ด SD เป็น 1,000 MiB ในหน้าต่าง Edit Android Virtual Device ... มันใช้งานได้! :)


คุณแน่ใจหรือไม่ว่าคำตอบของคุณเกี่ยวข้องกับปัญหา เนื่องจากปัญหาดูเหมือนว่าเกี่ยวข้องกับ RAM ซึ่งจะไม่เปลี่ยนแปลงหากมีการเปลี่ยนแปลงขนาดการ์ด SD
รถ stacker ระดับ

0

ไปที่แก้ไขอุปกรณ์เสมือน Android และเปลี่ยน 1024 ภายใต้ตัวเลือกหน่วยความจำเป็น 768 หากยังใช้งานไม่ได้ให้ลดลงเรื่อย ๆ


0

การลดขนาด RAM ในการตั้งค่า AVD ทำได้สำหรับฉัน AVD ที่เชื่องช้าสามารถกินแรมได้มากดังนั้นการทำอย่างน้อยก็ทำได้



0

ลองใช้ถ้าคำตอบอื่น ๆ ไม่ได้ผลสำหรับคุณ

สำหรับฉันสิ่งนี้เกิดขึ้นสำหรับ API 27 Emulator

API 26 Emulator ทำงานได้ดี ดังนั้นฉันจึงเริ่ม API 26 Emulator ก่อนแล้วจึงปิด

จากนั้นฉันก็เริ่ม API 27 Emulator และทำงานกับไม่มีข้อผิดพลาดเลย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.