วิธีแก้ไข:“ HAX ไม่ทำงานและโปรแกรมจำลองการทำงานในโหมดจำลอง”


141

คำถามคือ

ฉันได้รับ "HAX ไม่ทำงานและอีมูเลเตอร์ทำงานในโหมดอีมูเลชั่น" สิ่งนี้เกี่ยวข้องกับการติดตั้ง Intel x86 Emulator Accelerator (HAXM) และรัน avd ด้วย cpu ที่ตั้งค่าเป็น CPU Intel Atom (x86) หรือไม่? และแม้ว่าจะรู้สึกว่า AVD ทำงานได้เร็วขึ้นหลังจากที่ฉันติดตั้ง HAXM ข้อความนี้บ่งชี้ว่าประสิทธิภาพของ AVD นั้นถูกขัดขวาง มันควรจะได้รับการแก้ไขและถ้าเป็นเช่นนั้นได้อย่างไร

ฉันทำงานบน mac os x 10.9.1

รายการสิ่งที่ติดตั้งบนระบบของฉันผ่าน Android sdk manager:

  • เครื่องมือ
    • เครื่องมือ Android SDK Rev 22.3
    • เครื่องมือแพลตฟอร์ม Android SDK rev 19.0.1
    • เครื่องมือสร้าง SDK Android Rev 19.0.1
    • เครื่องมือสร้าง SDK Android Rev 19

==

  • Android 4.4.2 (API 19)
    • แพลตฟอร์ม SDK
    • รูปภาพระบบ ARM EABI v7a
    • อิมเมจระบบ Intel x86 Ato
    • Google API
    • แหล่งข้อมูลสำหรับ Android SDK

==

  • พิเศษ
    • Intel x86 Emulator Accelerator (HAXM) และฉันยังเรียกใช้โปรแกรมติดตั้ง dmg เช่นกันและติดตั้งโปรแกรมแก้ไขด่วนหลังจากที่ฉันพบเกี่ยวกับเรื่องนี้

ตั้งค่า AVD

  • แพลตฟอร์ม 4.4.2
  • API ระดับ 19
  • CPU Intel Atom (x86)

เมื่อฉันเรียกใช้ avd:

(ruby-2.0.0-p353) .android   $ tools/emulator -avd 1AVD -wipe-data -no-boot-anim -cpu-delay 0

ฉันตามและจำลองโหลดในที่สุด

emulator: The memory needed by this VM exceeds the driver limit.

HAX is not working and emulator runs in emulation mode

ฉันได้รับข้อผิดพลาดนี้ แต่ตัวเลียนแบบของฉันทำงานอยู่แล้วดังนั้นปัญหาที่แท้จริงของฉันคือเป้าหมายของ Visual Studio คือiPhoneแทนที่จะเป็นCPU ใด ๆที่ทำให้การปรับใช้ของฉันเป็นแบบจำลอง
Jaider

คำตอบ:


200

ใช่มันควรจะได้รับการแก้ไข HAXM ไม่ทำงาน มีการตั้งค่า RAM เท่าใดเพื่อใช้ในการกำหนดค่า AVD ของคุณ

768M เป็นตัวเลขที่ดีสำหรับมัน แต่ที่สำคัญที่สุดหมายเลขนี้จะต้องต่ำกว่าหรือเท่ากับการใช้หน่วยความจำที่คุณตั้งค่าไว้ระหว่างการติดตั้ง HAXM คุณสามารถเปิดการติดตั้งอีกครั้งเพื่อแก้ไข


9
ขอบคุณ @ ph0b, นั่นคือ, HAXM ได้รับการติดตั้งด้วยการจัดสรร 1024 สำหรับหน่วยความจำและอินสแตนซ์ avd ของฉันได้ตั้งค่าการจัดสรรหน่วยความจำเป็น 1907 ขอบคุณที่ชี้ให้เห็น
GnrlBzik

44
ตัวติดตั้ง HAXM แนะนำให้ใช้ค่าเริ่มต้น 1GB แต่ Nexus 5 AVD ได้รับการตั้งค่าให้ใช้ 1536 ตั้งค่าเป็น 1GB และเปิดใช้!
aalaap

14
ขอบคุณ สำหรับผู้ที่กำลังสงสัยตำแหน่งของไฟล์ติดตั้งของ HAXM จะอยู่ในsdk/extras/intelโฟลเดอร์ของบันเดิล ADT ของคุณ การวางเคอร์เซอร์ของคุณในรายการ HAXM ในตัวจัดการ AVD ของคุณจะเปิดเผยตำแหน่งที่แน่นอน
เกาะ

2
@zhelon เห็นได้ชัดว่าวิธีเดียวในการกำหนดค่า HAXM คือเรียกใช้โปรแกรมติดตั้งอีกครั้ง
ThomasW

23
หากคุณใช้ Windows และ Android Studio ให้ทำดังต่อไปนี้ ใน Android Studio: เครื่องมือ> Android> ตัวจัดการ AVD> อุปกรณ์ของคุณ> แสดงการตั้งค่าขั้นสูง> ตั้งค่า RAM ให้มีขนาดที่ต้องการ ในแผงควบคุม> โปรแกรมและคุณลักษณะ> Intel Hardware Accelerated Execution Manager> เปลี่ยน> ตั้งค่าด้วยตนเอง> ตั้งค่าเป็นขนาดที่ต้องการ
สารสื่อประสาท

66

หากคุณใช้ mac คุณสามารถติดตั้งhaxmโดยใช้homebrewผ่านcaskซึ่งเป็นส่วนเสริมในตัว (ตั้งแต่ปี 2015) ซึ่งอนุญาตให้ติดตั้งแอปที่ไม่ใช่โอเพ่นซอร์สและเดสก์ท็อป (เช่น chrome, firefox, eclipse ฯลฯ ):

brew cask install intel-haxm 

Android Studio

หากคุณใช้ Android Studio คุณสามารถรับผลลัพธ์เดียวกันจากเมนูToolsSDK Managerและจากนั้นในเครื่องมือ SDKแท็บเลือกช่องทำเครื่องหมายสำหรับIntel x86 Emulator Accelerator (ติดตั้ง HAXM)Okและคลิก


49

วิธีที่ฉันแก้ไขมันคือการตั้งค่าขีด จำกัด หน่วยความจำ AVD และหน่วยความจำ HAXM ให้มีขนาดเท่ากันคือ 1 GB = 1024 MB AVD ไม่สามารถ จำกัด หน่วยความจำได้สูงกว่า HAXM

1. การตั้งค่าหน่วยความจำ HAXM ให้เป็น 1024 M

วิธีเดียวในการเปลี่ยนหน่วยความจำ HAXM คือการติดตั้งอีกครั้ง ฉันใช้เทอร์มินัล ค้นหาHardware_Accelerated_Execution_Managerในเครื่องของคุณ จากนั้นเปลี่ยนไดเรกทอรีโฟลเดอร์นั้นเพื่อเรียกใช้สคริปต์การติดตั้ง

cd ~/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

-OR-

cd ~/Library/Developer/Xamarin/android-sdk-macosx/extras/intel/Hardware_Accelerated_Execution_Manager

อาจต้องเปลี่ยนการอนุญาต:

sudo chmod 755 "HAXM installation"

แล้ว:

./HAXM\ installation -m 1024

-OR-

sudo ./"HAXM installation" -m 1024

2. การตั้งค่าอุปกรณ์เสมือนขนาดเดียวกันกับขีด จำกัด หน่วยความจำ HAXM

ป้อนคำอธิบายรูปภาพที่นี่

มันใช้งานได้สำหรับฉัน โชคดี!


2
สิ่งนี้ใช้ได้สำหรับฉันเช่นกัน หากคุณกำลังมองหาหน้าจอการกำหนดค่า AVD อยู่ที่เครื่องมือ> Android> ตัวจัดการ AVD
stephenspann

2
หากคุณต้องการมีมากกว่าหนึ่ง AVD ทำงานในเวลาเดียวกัน, HAXM ความต้องการ RAM สูงสุดที่จะเป็นยอดรวมสำหรับ AVDs ทำงานอยู่ทั้งหมดคือสอง AVDs @ 1024MB = 2048MB ดังนั้น:$ sudo ./HAXM\ installation -m 2048
เจสันฮาร์ทลี่


20

สำหรับ Windows

ใน Android Studio:

เครื่องมือ > Android > AVD Manager > อุปกรณ์ของคุณ > ไอคอนดินสอ > แสดงการตั้งค่าขั้นสูง > หน่วยความจำและที่เก็บข้อมูล > RAM > ตั้งค่า RAM ตามขนาดที่คุณต้องการ

ในControl Panel:

โปรแกรมและคุณสมบัติ > Intel Hardware Accelerated Execution Manager > เปลี่ยน > ตั้งค่าด้วยตนเอง > ตั้งค่า RAM ตามขนาดที่คุณต้องการ

มันจะดีกว่าสำหรับขนาด RAM ที่ตั้งค่าในทั้งสองสถานที่จะเหมือนกัน


2
+1 สำหรับการอธิบายตำแหน่งที่แน่นอนเพื่อตั้งค่าเหล่านี้ คำตอบมากเกินไปบนอินเทอร์เน็ตถือว่ามีระดับความรู้ที่ผู้อ่านอย่างฉันไม่ได้มี :-) เสมอ
MikeKulls

4

ตรวจสอบเวอร์ชั่นล่าสุดของ Has บนเว็บไซต์ Intel และติดตั้ง ให้ ram ในขนาดที่แนะนำ "preset 2048" จากนั้นลองเรียกใช้แอพ สิ่งที่ควรทำงานได้ดี


2

ใช่มันควรจะได้รับการแก้ไข HAXM ไม่ทำงาน

บางครั้ง HAXM ใช้งานได้; ประสบการณ์กับ HAXM ปัจจุบันเป็นระยะ ๆ ข้ามแพลตฟอร์ม

ตัวอย่างเช่นฉันมีปลายปี 2009 iMac ที่ใช้ตัวประมวลผล 10.8.5 และ i7 ที่ 2.8Ghz, Android SDK 22.6 พร้อมกับสารพัดอัพเดททุกเช้านี้ (03/05/14) API17 จะสร้างตัวเลียนแบบด้วยการเร่งความเร็ว HAXM บนเครื่อง iMac นี้ API19 จะทำให้เกิด

ฉันยังมีช่วงต้นปี 2013 MBP 15 "Retina ที่ใช้หน่วยประมวลผล 10.8.5 และ i7 @ 2.7Ghz, Android SDK 22.6 พร้อมกับสารพัดที่อัพเดททุกเช้านี้ (03/05/14) API17 จะสร้างตัวจำลองด้วยการเร่ง HAXM API19 ทำงานได้ดีเช่นกัน .

เหมือนกันสำหรับปลายปี 2013 MBP Retina 13 ของฉันพร้อมด้วย dual-core i5 และ Mavericks

มีบางอย่างเกิดขึ้นสำหรับการทำเวอร์ชวลไลเซชันในระดับชิปที่ขาดหายไปจากซีพียูรุ่นเก่า (แม้กระทั่ง i7) ว่าภาพ API19 x86 ใหม่จำเป็นสำหรับ HAXM ในการทำงาน หาก API19 ไม่ทำงานให้ลองใช้ API17 หรือมากกว่านั้นอีก 16 ครั้ง


2

บน mac ของคุณเปิดเครื่องมือค้นหาจากนั้นCtr + Alt + G พิมพ์สิ่งนี้/Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

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


ลำดับ keystroke ด้านบนใช้งานไม่ได้สำหรับฉัน แต่มองหาIntelHAXM_<version name>.dmgไฟล์ใน 'sdk / extras / intel' dir และเรียกใช้โปรแกรมติดตั้งจากที่นั่น (Mac OSX)
kip2

2

หากคุณใช้หน่วยประมวลผล Intel ตรวจสอบให้แน่ใจว่าตัวติดตั้ง HAXM (Intel® Hardware Accelerated Execution Manager) ติดตั้งผ่านทางตัวจัดการ SDK โดยการเลือกตัวเลือกนี้ในตัวจัดการ SDK จากนั้นเรียกใช้ตัวติดตั้ง HAXM ผ่านเส้นทางด้านล่าง

your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

ตรวจสอบขนาดหน่วยความจำที่จัดสรรในขณะที่ทำการติดตั้ง HAX เพื่อให้เหมาะกับขนาดหน่วยความจำของโปรแกรมจำลอง

วิดีโอนี้ แสดงขั้นตอนที่จำเป็นทั้งหมดซึ่งอาจช่วยคุณในการแก้ปัญหา

วิดีโอนี้จะช่วยคุณหากคุณประสบปัญหาหลังจากติดตั้ง HAXM


1

เพิ่มขนาดหน่วยความจำที่จัดสรรในขณะที่ทำการติดตั้ง HAX เพื่อให้พอดีกับพื้นที่หรือขนาดที่สูงกว่าขนาดตัวจำลองของตัวจำลองที่คุณต้องการเปิดตัวในโหมด "Intel x86 Emulator Accelerator (HAXM)"

เมื่อคุณทำสำเร็จแล้วคุณสามารถดูได้ในคอนโซล / บันทึก

ป้อนคำอธิบายรูปภาพที่นี่



1

โซลูชันของตุ๊กแกทำงานได้อย่างสมบูรณ์ ข้อควรระวัง: HAXM ที่คุณให้ไว้จะถูกใช้กับอุปกรณ์ที่ทำงานอยู่ทั้งหมด ดังนั้นหากคุณกำลังทดสอบบนโทรศัพท์และแท็บเล็ตในเวลาเดียวกันและแต่ละคนมีความต้องการ 1G จากนั้นตรวจสอบให้แน่ใจว่า HAXM ที่คุณได้รับคือ atleast 2G


1

ดาวน์โหลด HAXM จาก SDK Manager

เปิดตัวจัดการ SDK ของคุณจาก Android Studio คลิกไอคอนที่แสดงในภาพหน้าจอ

ป้อนคำอธิบายรูปภาพที่นี่

คลิกที่ "เรียกใช้ตัวจัดการ SDK แบบสแตนด์อโลน" บนกล่องโต้ตอบ "การตั้งค่าเริ่มต้น"

ป้อนคำอธิบายรูปภาพที่นี่

ตรวจสอบโหนด "พิเศษ> Intel x86 Emulator Accelerator (ตัวติดตั้ง HAXM)" และดำเนินการดาวน์โหลด HAXM ต่อไป

ป้อนคำอธิบายรูปภาพที่นี่

การติดตั้งหรือแก้ไข HAXM

ตอนนี้คุณสามารถเข้าถึงด้วยการติดตั้ง (หรือแก้ไข installtino ที่มีอยู่) ของ HAXM โดยการเข้าถึงตำแหน่งดาวน์โหลด ป้อนเส้นทางนี้ใน "วิ่ง"

% LOCALAPPDATA% \ Android \ SDK \ แถม \ Intel \ Hardware_Accelerated_Execution_Manager

และดับเบิลคลิกไฟล์ "intelhaxm-android.exe"

คุณสามารถเพิ่มขนาดของหน่วยความจำที่จัดสรรให้กับ HAXM ในขณะที่แก้ไขการติดตั้ง HAXM ที่มีอยู่ ฉันมีเครื่องที่มี RAM 32 GB และต้องการเปิด AVD หลายตัวในเวลาเดียวกัน (สำหรับการทดสอบอัตโนมัติ ฯลฯ ) ดังนั้นฉันจึงจัดสรร 8 GB ให้กับ HAXM

ข้อแม้

หากคุณกำลังเรียกใช้ AVD หนึ่งตัวจากหนึ่ง GB และจัดสรร 2 GB เป็น HAXM คุณจะไม่สามารถเรียกใช้ AVD อื่นที่มี RAM มากกว่า 1 GB โปรดตรวจสอบให้แน่ใจว่า Android Device Monitor ไม่ได้ทำงานเมื่อคุณกำลังแก้ไขหรือติดตั้ง HAXM (เพียงเพื่อหลีกเลี่ยงการแปลกใจ)

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนเหล่านี้ได้รับการทดสอบบนแพลตฟอร์ม Windows แต่โดยทั่วไปแล้วสามารถนำไปใช้กับแพลตฟอร์มอื่นเช่นกันด้วยการปรับเปลี่ยนเล็กน้อย


1

ปัญหาของฉันคือฉันไม่สามารถเรียกใช้ตัวจำลองที่ทำงานได้อีกต่อไปเพราะฉันออกจากโปรแกรมตัวจำลอง แต่กระบวนการยังไม่จบดังนั้นฉันจึงพยายามเปิดตัวตัวจำลองอีกตัวในขณะที่ตัวก่อนหน้ายังทำงานอยู่ สำหรับ mac ฉันต้องใช้ Activity Monitor เพื่อดูกระบวนการอื่นและฆ่ามัน ขั้นตอน:

  1. เปิดการตรวจสอบกิจกรรม (ในยูทิลิตี้หรือใช้ Command + Space)
  2. ค้นหาชื่อกระบวนการในกรณีของฉันระบบ qemu ...
  3. เลือกกระบวนการ
  4. บังคับให้กระบวนการเลิกใช้ปุ่ม 'x' ที่ด้านซ้ายบน
  5. ฉันไม่ต้องใช้ 'Force Quit' เพียงแค่ธรรมดา 'Quit' แต่คุณสามารถใช้ได้เช่นกัน

1

ในกรณีของฉันข้อผิดพลาดนี้ได้รับการแก้ไขเมื่อฉันตั้งค่าหน่วยความจำ HAXM เท่ากับหน่วยความจำ AVD หน่วยความจำ HAXM 1024 MB = AVD หน่วยความจำ 1024 MB

Hax is enabled
Hax ram_size 0x40000000
HAX is working and emulator runs in fast virt mode.

เกินจุดนี้ข้อผิดพลาดควรได้รับการแก้ไข

ตอนนี้ฉันกำลังแสดงรายการสภาพแวดล้อมเฉพาะของฉันในกรณีที่อาจเป็นประโยชน์สำหรับใครบางคนที่ใช้ OS X

OS X El Capitan 10.11.4

MacBook (13 นิ้ว), 2 GHz Intel Core 2 Duo, 4 GB Ram

Android Studio 2.1

Marshmallow (23) x86 ไม่ผ่านหน้าจอไอคอน Android ที่กระพริบเป็นเวลาหลายชั่วโมง

Lollipop (22) x86 ผ่านหน้าจอไอคอน android ที่กระพริบแล้วแสดงให้เห็น

  • การเริ่มต้น Android (การเพิ่มประสิทธิภาพ x ออกจากแอพ)
  • เริ่มต้น Android (เริ่มต้นแอพ)
  • เริ่มต้น Android (อัพเดทฐานข้อมูลผู้ติดต่อ)
  • เริ่มต้น Android (บูตผิว) และยังคงติดอยู่ที่นี่เป็นเวลาหลายชั่วโมง

KitKat (19) x86 ทำงานได้สำเร็จและฉันสามารถติดตั้งสวัสดีชาวโลกที่นั่นได้


นี่คือคำตอบหรือไม่ @zeeawan
GnrlBzik

ใช่หน่วยความจำ HAXM 1024 MB = หน่วยความจำ AVD รวมกัน 1024 MB ทำให้ hax เริ่มทำงาน ยิ่งไปกว่านั้นคำตอบนี้แสดงให้เห็นว่าตัวจำลองเริ่มทำงานให้ฉันบน OS X ได้อย่างไร
zeeawan

ต้องการคำอธิบายเพิ่มเติมฉันคิดว่า
GnrlBzik

ดังนั้นคุณจะบอกว่าคุณแก้ไขข้อผิดพลาด แต่คุณยังคงมีปัญหากับตัวจำลองที่ใช้เวลานานในการบูต?
Sam

มันใช้ได้กับ KitKat (19) x86
zeeawan

0

เปิดการกำหนดค่าอุปกรณ์ AVD ของคุณอีกครั้ง โดยการแก้ไขอุปกรณ์ในเครื่องมือจัดการ AVD ดำเนินการต่อเพื่อเลือกรุ่น AVD Android ที่บานหน้าต่างด้านขวาคำแนะนำจะปรากฏขึ้นตามคำแนะนำนั้นและทั้งหมดจะได้รับการแก้ไข


0

หน่วยความจำเริ่มต้นที่กำหนดให้กับ HAX คือ 1024MB และตัวจำลองมีขนาด 1536MB สำหรับ Nexus 5x api 25

หากคุณใช้ Android Studio

  • เพียงไปที่เครื่องมือ -> ผู้จัดการ AVD
  • จากนั้นเลือกอีมูเลเตอร์แล้วคลิกที่ปุ่มดินสอทางด้านขวาเพื่อทำการแก้ไข
  • ไปที่การตั้งค่าขั้นสูงในหน้าต่างใหม่และเปลี่ยนค่า RAM เป็น 1024

ทำงานเหมือนจับใจ :)

สกรีนช็อตของ android studio

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