Cara memperbaikinya: "HAX tidak bekerja dan emulator berjalan dalam mode emulasi"

141

Pertanyaan adalah

Saya mendapatkan "HAX tidak bekerja dan emulator berjalan dalam mode emulasi", apakah ini terkait dengan instalasi Intel x86 Emulator Accelerator (HAXM) dan menjalankan avd dengan cpu yang diatur ke CPU Intel Atom (x86)? Dan meskipun terasa seperti AVD berjalan lebih cepat setelah saya menginstal HAXM, apakah pesan ini menunjukkan bahwa kinerja AVD terhambat. Haruskah itu diperbaiki dan jika demikian, bagaimana?

Saya menjalankan pada mac os x 10.9.1.

Daftar apa yang diinstal pada sistem saya melalui manajer SDK Android:

  • Alat
    • Android SDK Tools Rev 22.3
    • Android SDK Platform-tools rev 19.0.1
    • Android SDK Build-tools Rev 19.0.1
    • Android SDK Build-tools Rev 19

==

  • Android 4.4.2 (API 19)
    • Platform SDK
    • Gambar Sistem ARM EABI v7a
    • Gambar Sistem Intel x86 Ato
    • Google APIs
    • Sumber untuk Android SDK

==

  • Ekstra
    • Intel x86 Emulator Accelerator (HAXM) DAN AKU JUGA juga menjalankan installer dmg, dan menginstal hot fix, setelah saya mengetahuinya.

Pengaturan AVD

  • Platform 4.4.2
  • API Level 19
  • CPU Intel Atom (x86)

Setelah saya menjalankan avd:

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

saya mengikuti dan emulator akhirnya memuat

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

HAX is not working and emulator runs in emulation mode
GnrlBzik
sumber
Saya mendapatkan kesalahan ini, tetapi emulator saya sudah berjalan, jadi masalah sebenarnya saya adalah bahwa target Visual Studio adalah iPhone bukan CPU , yang memperbaiki penyebaran saya ke simulator.
Jaider

Jawaban:

200

Ya itu harus diperbaiki, HAXM tidak berfungsi. Berapa banyak RAM yang diatur untuk digunakan di dalam konfigurasi AVD Anda?

768M adalah angka yang bagus untuk itu, tetapi yang paling penting angka ini harus lebih rendah atau sama dengan penggunaan memori yang telah Anda atur selama instalasi HAXM. Anda dapat meluncurkan instalasinya lagi untuk memodifikasinya.

ph0b
sumber
9
terima kasih @ ph0b, itu saja, HAXM diinstal dengan alokasi 1024 untuk memori dan contoh AVD saya telah menetapkan alokasi memori ke 1907. terima kasih telah menunjukkan ini.
GnrlBzik
44
Penginstal HAXM menyarankan 1GB default, tetapi Nexus 5 AVD diatur untuk menggunakan 1536. Kembalikan ke 1GB dan kami aktif!
aalaap
14
Terima kasih. Bagi mereka yang bertanya-tanya, lokasi file pemasang HAXM terletak di sdk/extras/intelfolder bundel ADT Anda. Menempatkan kursor Anda pada entri HAXM di AVD Manager Anda akan mengungkapkan lokasi yang tepat.
Koh
2
@zhelon rupanya satu-satunya cara untuk mengkonfigurasi HAXM adalah dengan menjalankan installer lagi.
ThomasW
23
Jika Anda menggunakan Windows dan Android Studio, lakukan hal berikut. Di Android Studio: Alat> Android> AVD Manager> Perangkat Anda> Tampilkan Pengaturan Lanjut> Atur RAM ke ukuran yang diinginkan. Pada Panel Kontrol> Program dan Fitur> Manajer Eksekusi Dipercepat Perangkat Keras Intel> Ubah> Atur secara manual> Setel ke ukuran yang diinginkan.
Neurotransmitter
66

Jika Anda menggunakan mac, Anda dapat menginstal haxmmenggunakan homebrew via tong yang merupakan ekstensi bawaan (per 2015) yang memungkinkan menginstal aplikasi non-open-source dan desktop (mis. Chrome, firefox, eclipse, dll.):

brew cask install intel-haxm 

Android Studio

Jika Anda menggunakan Android Studio maka Anda dapat mencapai hasil yang sama dari menu ToolsSDK Manager, dan kemudian pada tab SDK Tools , pilih kotak centang untuk Intel x86 Emulator Accelerator (penginstal HAXM) , dan klik Ok.

ccpizza
sumber
49

Cara saya menyelesaikannya adalah dengan mengatur batas memori AVD dan memori HAXM agar sama dalam ukuran yaitu 1 GB = 1024 MB. AVD tidak dapat memiliki batas memori lebih tinggi dari HAXM.

1. Mengatur memori HAXM menjadi 1024 M

Satu-satunya cara untuk mengubah memori HAXM adalah dengan menginstalnya lagi. Saya melakukannya menggunakan terminal. Temukan Hardware_Accelerated_Execution_Manager di mesin Anda. Kemudian ubah direktori folder itu untuk menjalankan skrip instalasi.

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

-OR-

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

Mungkin perlu mengubah izin:

sudo chmod 755 "HAXM installation"

Kemudian:

./HAXM\ installation -m 1024

-OR-

sudo ./"HAXM installation" -m 1024

2. Mengatur perangkat virtual dengan ukuran yang sama dengan batas memori HAXM

masukkan deskripsi gambar di sini

Ini bekerja untuk saya. Semoga berhasil!

tokek
sumber
2
Ini juga bekerja untuk saya. Jika Anda mencari layar konfigurasi AVD, ada di Tools> Android> AVD Manager
stephenspann
2
Jika Anda ingin memiliki lebih dari satu AVD berjalan pada saat yang sama, HAXM max RAM harus menjadi total untuk semua AVD yang berjalan, yaitu dua AVD @ 1024MB = 2048MB, jadi:$ sudo ./HAXM\ installation -m 2048
Jason Hartley
20

Untuk Windows.

Dalam Android Studio:

Alat > Android > Manajer AVD > Perangkat Anda > Ikon Pensil > Tampilkan Pengaturan Lanjut > Memori dan Penyimpanan > RAM > Atur RAM ke ukuran yang Anda inginkan.

Dalam Control Panel:

Program dan Fitur > Manajer Eksekusi Akselerasi Perangkat Keras Intel > Ubah > Atur secara manual > Atur RAM ke ukuran yang Anda inginkan.

Lebih baik ukuran RAM yang ditetapkan di kedua tempat sama.

Neurotransmitter
sumber
2
+1 untuk menjelaskan tempat yang tepat untuk menetapkan nilai-nilai ini. Terlalu banyak jawaban di internet mengasumsikan tingkat pengetahuan yang tidak selalu dimiliki pembaca, seperti saya ,
MikeKulls
4

Periksa versi terbaru dari Has di situs web Intel dan instal. Biarkan ram dalam ukuran yang disarankan "preset 2048", lalu coba jalankan aplikasi. Segalanya harus bekerja dengan baik.

Mohamed
sumber
2

Ya itu harus diperbaiki, HAXM tidak berfungsi.

HAXM terkadang bekerja; pengalaman dengan HAXM saat ini sporadis lintas platform.

Sebagai contoh, saya punya iMac 2009 terlambat menjalankan 10.8.5 dan prosesor i7 @ 2.8Ghz, Android SDK 22.6 dengan semua barang diperbarui pagi ini (03/05/14). API17 akan membangun emulator dengan akselerasi HAXM pada mesin iMac ini, API19 tersedak.

Saya juga memiliki awal 2013 MBP 15 "Retina yang menjalankan 10.8.5 dan prosesor i7 @ 2.7Ghz, Android SDK 22.6 dengan semua barang diperbarui pagi ini (03/05/14). API17 akan membangun emulator dengan akselerasi HAXM, API19 juga berfungsi sangat baik .

Ditto untuk saya (pribadi) akhir 2013 MBP Retina 13 "dengan dual-core i5 dan Mavericks.

Ada sesuatu yang terjadi untuk virtualisasi pada tingkat chip yang hilang dari CPU lama (bahkan i7) yang membutuhkan gambar API19 x86 baru agar HAXM dapat bekerja. Jika API19 tidak berfungsi, cobalah API17 atau bahkan 16.

HAL-9000
sumber
2

Di mac Anda Buka pencari lalu Ctr + Alt + G ketikkan ini/Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

Anda akan menemukan installer emulator accelerator jadi jalankan dan atur memori yang Anda perlu modifikasi dan coba lagi untuk menjalankan aplikasi android Anda

Zouhair Kasmi
sumber
Urutan keystroke di atas tidak bekerja untuk saya tetapi hanya mencari IntelHAXM_<version name>.dmgfile di dir 'sdk / ekstra / intel' dan menjalankan installer dari sana (Mac OSX)
kip2
2

jika Anda menjalankan prosesor Intel, pastikan penginstal HAXM (Intel® Hardware Accelerated Execution Manager) diinstal melalui SDK Manager dengan mencentang opsi ini di SDK Manager. dan kemudian jalankan installer HAXM ext melalui jalur di bawah ini

your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

juga periksa ukuran ram yang dialokasikan saat melakukan instalasi HAX sehingga sesuai dengan ukuran ram emulator Anda.

Video ini menunjukkan semua langkah yang diperlukan yang dapat membantu Anda menyelesaikan masalah.

Ini video yang juga akan membantu Anda jika Anda menghadapi masalah setelah menginstal HAXM.

Yogesh patel
sumber
1

Baik menambah ukuran ram yang dialokasikan saat melakukan instalasi HAX, sehingga sesuai dengan ruang yang tepat atau sedikit lebih tinggi daripada ukuran ram dari emulator yang ingin Anda luncurkan dalam mode "Intel x86 Emulator Accelerator (HAXM)",

Setelah Anda berhasil, Anda sekarang dapat melihatnya di konsol / log

masukkan deskripsi gambar di sini

Bala Prasanna
sumber
1

solusi tokek bekerja dengan sempurna. Perhatian: HAXM yang Anda berikan digunakan di semua perangkat yang berjalan. Jadi jika Anda menguji pada ponsel dan Tablet secara bersamaan dan masing-masing memiliki persyaratan 1G. Kemudian pastikan HAXM Anda yang dialokasikan minimal 2G.

makanan penutup
sumber
1

Unduh HAXM dari SDK Manager

Buka SDK Manager Anda dari Android Studio, klik ikon yang ditunjukkan pada tangkapan layar.

masukkan deskripsi gambar di sini

Klik pada "Luncurkan Standalone SDK Manager" pada Dialog "Pengaturan Default".

masukkan deskripsi gambar di sini

Periksa simpul "Ekstra> Intel x86 Emulator Accelerator (penginstal HAXM)" dan lanjutkan dengan pengunduhan HAXM.

masukkan deskripsi gambar di sini

Menginstal atau Memodifikasi HAXM

Anda sekarang dapat mengakses dengan instalasi (atau memodifikasi installtino yang ada) dari HAXM dengan mengakses lokasi unduhan. Masukkan jalur ini di "run"

% localappdata% \ Android \ sdk \ ekstra \ intel \ Hardware_Accelerated_Execution_Manager

dan klik dua kali file "intelhaxm-android.exe"

Anda dapat meningkatkan ukuran memori yang dialokasikan untuk HAXM sambil memodifikasi instalasi HAXM yang ada. Saya memiliki mesin dengan 32 GB RAM dan ingin meluncurkan beberapa AVD secara bersamaan (untuk pengujian otomatis dll.) Jadi saya telah mengalokasikan 8 GB ke HAXM.

Peringatan

Jika Anda menjalankan satu AVD dari 1 GB dan mengalokasikan 2 GB ke HAXM, Anda tidak dapat menjalankan AVD lain dengan RAM lebih dari 1 GB. Pastikan Android Device Monitor tidak berjalan saat Anda memodifikasi atau menginstal HAXM (hanya untuk menghindari kejutan).

masukkan deskripsi gambar di sini

Langkah-langkah ini diuji pada platform Windows, tetapi umumnya dapat diterapkan ke platform lain juga dengan sedikit modifikasi.

AB
sumber
1

Masalah saya adalah bahwa saya tidak bisa lagi menjalankan emulator yang berhasil karena saya telah keluar dari aplikasi emulator tetapi prosesnya belum sepenuhnya berakhir, jadi saya mencoba untuk meluncurkan emulator lain sementara yang sebelumnya masih berjalan. Di mac, saya harus menggunakan Monitor Aktivitas untuk melihat proses lain dan membunuhnya. Langkah:

  1. Buka Monitor Aktivitas (dalam Utilitas atau menggunakan Command + Space)
  2. Temukan nama proses, dalam kasus saya, sistem qemu ...
  3. Pilih prosesnya.
  4. Paksa proses untuk berhenti menggunakan tombol 'x' di kiri atas.
  5. Saya tidak harus menggunakan 'Force Quit', cukup 'Quit', tetapi Anda dapat menggunakan keduanya.
rjferguson
sumber
1

Dalam kasus saya, kesalahan ini diperbaiki ketika saya mengatur memori HAXM sama dengan memori AVD. Memori HAXM 1024 MB = memori AVD 1024 MB

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

Hingga saat ini kesalahan harus diperbaiki.

Sekarang saya daftar lingkungan spesifik saya kalau-kalau itu bisa membantu seseorang menggunakan OS X.

OS X El Capitan 10.11.4

MacBook (13 inci), 2 GHz Intel Core 2 Duo, Ram 4 GB.

Android Studio 2.1

Marshmallow (23) x86 tidak lulus layar ikon Android berkedip selama berjam-jam.

Lollipop (22) x86 melewati layar ikon android yang berkedip dan kemudian muncul

  • Memulai Android (Mengoptimalkan x dari aplikasi Anda)
  • Memulai Android (Memulai aplikasi)
  • Memulai Android (Memperbarui Database Kontak)
  • Mulai Android (Finishing boot) dan tetap macet di sini selama berjam-jam .

KitKat (19) x86 bekerja dengan sukses dan saya dapat menginstal hello world di sana.

zeeawan
sumber
apakah ini jawaban? @zeeawan
GnrlBzik
Ya, memori HAXM 1024 MB = Memori AVD 1024 MB membuat hax mulai bekerja. Plus, jawaban ini membahas bagaimana emulator mulai bekerja untuk saya di OS X.
zeeawan
Saya rasa butuh narasi lebih banyak.
GnrlBzik
Jadi, apakah Anda mengatakan Anda memperbaiki kesalahan tetapi Anda masih memiliki masalah dengan emulator yang perlu waktu lama untuk boot?
Sam
Itu baik-baik saja dengan KitKat (19) x86.
zeeawan
0

Buka kembali konfigurasi perangkat AVD Anda. dengan mengedit perangkat di manajer AVD. lanjutkan untuk memilih versi Android AVD. Di panel kanan a rekomendasi ditampilkan ikuti rekomendasi itu dan semua akan diperbaiki.

hasan
sumber
0

Memori default yang ditetapkan untuk HAX adalah 1024MB. Dan emulatornya memiliki ukuran 1536MB untuk Nexus 5x api 25.

jika Anda menggunakan Android Studio,

  • buka saja alat -> pengelola AVD.
  • Kemudian pilih emulator dan klik tombol pensil di sebelah kanan untuk mengedit.
  • Pergi ke pengaturan lanjutan di jendela baru dan ubah nilai RAM ke 1024

Bekerja seperti pesona. :)

tangkapan layar studio android

abe312
sumber