web-dev-qa-db-fra.com

Impossible d'exécuter l'émulateur dans Android Studio

Je viens de terminer l'installation de Android studio et de l'essayer pour un test. Lorsque j'essaie d'exécuter mon application, le message d'erreur suivant s'affiche

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

Est-ce que quelqu'un sait comment réparer ceci????

86
Ted pottel

Il est possible que vous n'ayez vraiment aucune image système. Vérifiez à nouveau que $Android_HOME/system-images/Android-<YOUR DESIRED API>/armeabi-v7a existe et n'est pas vide. S'ils manquent vraiment - installez/réinstallez avec le gestionnaire de SDK.

24
tse

Aller aux outils | Android | Gestionnaire AVD

Cliquez sur la flèche sous la colonne Actions à l'extrême droite (où se trouve le message d'erreur)

Choisissez Edit

Laissez la sélection par défaut (Pour moi, MNC x86 Android M)

Cliquez sur Suivant

Cliquez sur Terminer

Il enregistre votre AVD et erreur est maintenant parti de la dernière colonne. Et l'émulateur fonctionne bien maintenant.

19
Harris

Je viens de réparer ça. J'espère que cela aide les autres. (Problème similaire à Android studio v2). Ce problème concerne les émulateurs de bras. Dans cet exemple, j'utilise l'armeabi-v7a API 16

Le correctif est en trois étapes:

Étape 1: Ouvrez sdk manager et assurez-vous d’avoir installé ARM EABI v7a Image système.

Étape 2. C’est le cas évident d’ajouter l’emplacement de sdk aux variables système.

Faites un clic droit sur l'icône "Ce PC" sur le bureau, puis

Properties -> Advanced system settings -> Environment Variables... Ajoutez ensuite le chemin d'accès à sdk en tant que nouvelle section de variable système en utilisant le nom de variable Android_SDK_ROOT.

Étape 3. Redémarrez Android Studio pour que les modifications soient enregistrées. Après avoir corrigé le Android_SDK_ROOT est un problème non défini, l'émulateur ne peut toujours pas trouver les fichiers du noyau même s'il peut voir que le gestionnaire de sdk l'a installé.

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

La raison en est une confusion entre l'emplacement d'installation du fichier noyau par le gestionnaire sdk et celui où l'émulateur le recherche.

Si vous ouvrez votre config.ini (Android Studio -> AVD Mananger -> "Show On Disk") pour votre émulateur, vous verrez la ligne suivante:

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

(c'est-à-dire\chemin-à-sdk\add-ons\addon -....)

Au lieu de changer cette valeur dans le fichier config.ini que j'ai copié

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

(fichier du noyau du dossier sdk manager installé)

à

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

Et c'était le fichier de noyau manquant. Vous pouvez exécuter l'émulateur. (Vous devrez fermer le Android Studio et le rouvrir à nouveau). Donnez un peu de temps à l'émulateur, car il est 10 fois plus lent que le x86. (Le mien a pris environ 5 minutes pour commencer)

13
Asi Mugrabi

Je l'ai réparé en exécutant "C:\Program Files\Android\android-sdk\AVD Manager.exe" et en réparant mon périphérique défectueux.

10
airo

Réponse courte: essayez de créer la même image en utilisant l’ancienne école <AndroidSDK>\AVD Manager.exe.

Travaillant dans Android Studio, exécutant tous les outils intégrés, il m’est devenu naturel de ne pas utiliser les anciens gestionnaires (AVD/SDK).

Dans mon cas, j'ai eu ce problème lorsque j'ai utilisé le nouveau gestionnaire AVD (intégré) pour créer des périphériques avec d'anciennes images système (API 11 et versions antérieures, comme je l'ai testé).

Lorsque j'ai essayé d'utiliser l'ancien outil AVD Manager (situé dans <AndroidSDK>\AVD Manager.exe) pour créer ces anciennes images de périphérique, j'ai eu du succès.

5
Luan

Hé là vient de rencontrer le même problème que vous, le 3ème lien dans Google m'a amené à ce morceau de code qui jette l'erreur,

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);

à laquelle la personne a écrit:

"/ * Si le nom de l'image du noyau se termine par" -armv7 ", changez automatiquement le type de cpu *. Il s'agit d'une approche médiocre de la gestion de la configuration *, mais cela devrait nous permettre d'aller au-delà de la construction des images système ARMv7 * avec dex preopt pass "

Je suis donc retourné et j'ai téléchargé la version x86 d'Intel atom pour le niveau d'API souhaité et j'ai pu obtenir l'émulateur sans l'erreur. J'espère que ça vous aide aussi .....

3
Brandon

J'ai eu la même erreur. La solution pour moi était de changer le chemin Android_HOME . Premièrement, j’ai jeté un œil dans outils-> Android-> sdk manager de Android Studio. Dans cette fenêtre, nous pouvons voir le chemin où Android Studio cherche le SDK: image

Puis j'ai ouvert un shell Windows CMD, exécuté:

echo %Android_HOME%

mais le chemin était différent de celui de Android CONFIGURATION STUDIO de la première étape.

La solution consistait à changer dans l'environnement utilisateur, Android_HOME, celui de la première étape: image

J'ai finalement fermé le shell cmd, et ouvert un autre shell cmd pour exécuter:

echo %Android_HOME%

le chemin a été mis à jour et je pouvais exécuter mon émulateur à la perfection.

2
Hector Pasarin

Normalement, l'erreur est due à un émulateur AVD inadapté pour le type d'application pour lequel vous développez. Par exemple, si vous développez une application pour un ordinateur portable mais que vous essayez d'utiliser un émulateur de téléphone pour l'exécuter.

2
M Muli

Dans mon cas (Windows 10), la raison était que j’ai osé décompresser le Android sdk dans un dossier autre que celui par défaut. Lorsque je l'ai déplacé vers la valeur par défaut c:/Utilisateurs/[nom d'utilisateur]/AppData/Local/Android/Sdk et que j'ai modifié les chemins d'accès dans Android Variables Studio et Système, cela a commencé à fonctionner.

0
Lukas Hanacek
  • Ouvrez le studio Android.
  • Accédez au paramètre> Paramètres système> Android SDK.
  • Obtenez "l'emplacement du SDK Android".
  • Définissez la variable d’environnement Android_SDK_ROOT sur cette valeur.

Cela a fonctionné pour moi et je suis sous Windows 10 et Android studio 2.3.3

0
3lokh
  1. Allez à "Editer les variables d'environnement système".
  2. Cliquez sur Nouveau bouton et entrez "Android_SDK_ROOT" dans le nom de la variable, puis entrez Android sdk chemin complet dans la valeur de la variable. Cliquez sur ok et fermez.
  3. Actualiser AVD.
  4. Cela résoudra l'erreur.
0
Ritika Ranjan