Tidak dapat menjalankan emulator di Android Studio

96

Saya baru saja selesai menginstal Android studio dan mencoba mengambilnya untuk uji coba. Ketika saya mencoba menjalankan aplikasi saya, saya mendapatkan pesan kesalahan berikut

emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined

Apakah ada yang tahu cara memperbaikinya ????

Ted pottel
sumber
1
Lihat jawaban ini stackoverflow.com/questions/9712605/…
Psypher
@Ted pottel, apakah salah satu jawaban di bawah ini menjawab pertanyaan Anda? Jika ya, silakan klik tanda centang di sebelahnya.
Harris

Jawaban:

27

Mungkin saja Anda benar-benar tidak memiliki gambar sistem. Periksa kembali apakah $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7aada dan tidak kosong. Jika benar-benar hilang - instal / instal ulang dengan pengelola SDK.

tse
sumber
2
Saya memiliki dua masalah: 1: Saya tidak dapat menemukan $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a, 2: Cara menginstal ulang perangkat virtual menggunakan SDK manager
Musa Haidari
Namun membaca jawaban Anda, saya dapat melakukan solusi, dan itu adalah membuat perangkat virtual baru dan masalah tidak terjadi untuk yang baru
Musa Haidari
4
Dalam SDK Manager, pastikan Anda mencentang "Show Package Details" sehingga Anda dapat melihat image sistem mana yang diinstal, dan jika tidak, instal
Martyn Davis
21

Pergi ke Tools | Android | AVD Manager

Klik panah di bawah kolom Tindakan di paling kanan (di mana pesan kesalahannya)

Pilih Edit

Biarkan pilihan default (Bagi saya, MNC x86 Android M)

Klik Next

Klik Selesai

Ini menyimpan AVD Anda dan kesalahan sekarang hilang dari kolom terakhir. Dan emulator berfungsi dengan baik sekarang.

Harris
sumber
15

Perbaiki ini. Semoga ini bisa membantu orang lain. (Masalah seperti di Android studio v2) Masalah ini untuk emulator lengan. Dalam contoh ini saya menggunakan armeabi-v7a API 16

Perbaikannya adalah tiga langkah:

Langkah 1: Buka sdk manager dan pastikan Anda telah menginstal ARM EABI v7a System Image

Langkah 2. Ini adalah kasus yang jelas tentang menambahkan lokasi sdk ke variabel sistem.

Klik kanan pada ikon "PC ini" di desktop, lalu

Properties -> Advanced system settings -> Environment Variables... Kemudian tambahkan jalur ke sdk sebagai yang baru untuk bagian variabel sistem menggunakan nama variabel ANDROID_SDK_ROOT.

Langkah 3. Mulai ulang Android Studio untuk perubahan yang akan didaftarkan. Setelah memperbaiki ANDROID_SDK_ROOTmasalah yang tidak ditentukan, emulator masih tidak dapat menemukan file kernel meskipun dapat dilihat bahwa sdk manager menginstalnya ke

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

Alasannya adalah campuran antara lokasi tempat pengelola sdk menginstal file kernel dan lokasi yang dicari emulator.

Jika Anda membuka config.ini (Android Studio -> AVD Mananger -> "Show On Disk") untuk emulator Anda, Anda akan melihat baris berikut:

image.sysdir.1=add-ons\addon-google_apis-google-16\images\armeabi-v7a\

(yaitu \ path-to-sdk \ add-ons \ addon -....)

Alih-alih mengubah nilai ini di file config.ini yang saya salin

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

(file kernel dari folder sdk manager diinstal)

untuk

\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\

Dan itu adalah file kernel yang hilang. Anda dapat menjalankan emulator. (Anda harus menutup Android Studio dan membukanya kembali) Beri waktu kepada emulator karena 10x kali lebih lambat dibandingkan dengan x86. (Milik saya membutuhkan waktu sekitar 5 menit untuk memulai)

Asi Mugrabi
sumber
Eh, di mana 'config.ini untuk emulator Anda'?
Jay
Android Studio -> AVD Mananger -> "Show On Disk". Mengedit jawabannya.
Asi Mugrabi
Ini adalah jawaban yang benar-benar berhasil bagi saya, dalam kasus saya, ini adalah baris yang saya edit:image.sysdir.1=system-images\android-16\default\armeabi-v7a
yvesmancera
Ini melakukan trik bagi saya untuk emulator Nexus 4. Harus memperbarui image.sysdir.1ke `system-images \ android-15 \ google_apis \ armeabi-v7a`
twig
10

Saya memperbaikinya dengan menjalankan "C: \ Program Files \ Android \ android-sdk \ AVD Manager.exe" dan memperbaiki perangkat saya yang rusak.

airo
sumber
5

Jawaban singkatnya : coba buat gambar yang sama menggunakan jadul <AndroidSDK>\AVD Manager.exe.

Bekerja di Android Studio, menjalankan semua alat terintegrasi, menjadi wajar bagi saya untuk tidak menggunakan pengelola lama (AVD / SDK).

Dalam kasus saya, saya mengalami masalah ini saat menggunakan AVD Manager baru (terintegrasi) untuk membuat perangkat dengan image sistem lama (API 11 dan di bawahnya, seperti yang telah saya uji).

Ketika saya mencoba menggunakan alat AVD Manager sekolah lama (terletak di <AndroidSDK>\AVD Manager.exe) untuk membuat gambar perangkat lama ini, saya berhasil.

Luan
sumber
2
Terima kasih atas sarannya - sepertinya alat mandiri ini tahu cara mengatur berbagai hal untuk platform yang lebih lama. Pada OS X / MacOS: ~/Library/Android/sdk/tools/android avd.
neuralmer
4

Halo, baru saja mengalami masalah yang sama dengan yang Anda alami, tautan ke-3 di Google membawa saya ke kode yang menyebabkan kesalahan ini,

if (kernelFile == NULL) {
        kernelFile = avdInfo_getKernelPath(avd);
        if (kernelFile == NULL) {
            derror( "This AVD's configuration is missing a kernel file!!" );
            const char* sdkRootDir = getenv("ANDROID_SDK_ROOT");
            if (sdkRootDir) {
                derror( "ANDROID_SDK_ROOT is defined (%s) but cannot find kernel file in "
                        "%s" PATH_SEP "system-images" PATH_SEP
                        " sub directories", sdkRootDir, sdkRootDir);
            } else {
                derror( "ANDROID_SDK_ROOT is undefined");
            }
            exit(2);

di mana orang itu menulis:

"/ * Jika nama image kernel diakhiri dengan" -armv7 ", maka ubah jenis cpu * secara otomatis. Ini adalah pendekatan orang malang untuk manajemen konfigurasi *, tetapi harus memungkinkan kita untuk melewati pembuatan image sistem ARMv7 * dengan dex preopt pass "

Jadi saya masuk kembali dan mengunduh versi intel atom x86 untuk level API yang saya inginkan dan bisa mendapatkan emulator tanpa kesalahan. Semoga ini membantu Anda juga .....

Brandon
sumber
2

Biasanya, kesalahan akan terjadi karena emulator AVD yang tidak sesuai untuk jenis aplikasi yang Anda kembangkan. Misalnya jika Anda mengembangkan aplikasi untuk perangkat yang dapat dikenakan tetapi Anda mencoba menggunakan emulator ponsel untuk menjalankannya.

M Muli
sumber
2

Saya mengalami kesalahan yang sama. Solusi bagi saya adalah mengubah jalur ANDROID_HOME . Pertama saya melihat ke tools-> android-> sdk manager dari Android Studio. Di jendela itu, kita bisa melihat jalur tempat Android Studio mencari SDK: image

Kemudian saya membuka shell Windows CMD, menjalankan:

echo %ANDROID_HOME%

tetapi jalurnya berbeda dengan yang ada di ANDROID STUDIO CONFIGURATION langkah pertama.

Solusinya adalah mengubah lingkungan pengguna, ANDROID_HOME, ke salah satu langkah pertama: image

Saya akhirnya menutup shell cmd, dan membuka shell cmd lain untuk mengeksekusi:

echo %ANDROID_HOME%

jalurnya telah diperbarui, dan saya dapat menjalankan emulator saya dengan sempurna.

Hector Pasarin
sumber
1

Dalam kasus saya (Windows 10), alasannya adalah saya berani unzip sdk android ke folder non default. Ketika saya memindahkannya ke default c: / Users / [username] / AppData / Local / Android / Sdk dan mengubah jalur di Android Studio dan Variabel Sistem, itu mulai berfungsi.

Lukas Hanacek
sumber
1
  • Buka studio Android.
  • Buka pengaturan> Pengaturan Sistem> SDK Android
  • Dapatkan "Lokasi Android SDK".
  • Setel variabel lingkungan ANDROID_SDK_ROOT ke nilai ini.

Ini berhasil untuk saya dan saya menggunakan Windows 10 dan Android studio 2.3.3

3lokh
sumber
1
  1. Buka "Edit variabel Lingkungan Sistem".
  2. Klik Tombol Baru dan masukkan "ANDROID_SDK_ROOT" dalam nama variabel dan masukkan jalur lengkap sdk android dalam nilai variabel. Klik ok dan tutup.
  3. Segarkan AVD.
  4. Ini akan mengatasi kesalahan.
Ritika Ranjan
sumber
-1

Pendekatan umum yang harus diikuti untuk memecahkan masalah ini.

1. PERIKSA manajer SDK Anda dengan menjalankan dari studio android dan folder stand alons sdk dengan mengeksekusi ./android.shmembantu Anda menemukan paket yang rusak

  1. Coba instal image emulator Sistem dengan dukungan Google API daripada yang Intel. Sama seperti, saya memecahkan masalah saya dengan menjalankan gambar sistem lain.

  2. Eksperimen pada Virtulaization berbasis KVM yang disarankan oleh Google untuk Linux

Daniel Adenew
sumber