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????
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.
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.
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)
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.
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.
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 .....
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.
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.
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.
Cela a fonctionné pour moi et je suis sous Windows 10 et Android studio 2.3.3