Erreur de l'émulateur: il manque un fichier noyau dans la configuration de cet AVD

184

Ce problème a été découvert lorsque j'ai essayé d'exécuter l'émulateur Android dans Eclipse. Je ne peux pas comprendre ce qui s'est passé. J'ai cherché en ligne la solution, mais cela m'a semblé vague et je ne comprends pas clairement. Je suivais les étapes pour installer l'AVD en fonction des sites et je ne peux pas comprendre ce que j'ai manqué. Veuillez me l'expliquer dans les étapes à suivre.

shoujo_sm
la source
même problème: stackoverflow.com/questions/8190820/scala-android-newbie - créer un nouvel AVD
zapl
1
Sur un mac ne pouvait toujours pas le démarrer; l'utilisation d'une réparation sur l'AVD a fonctionné pour moi stackoverflow.com/a/15971119/664220
Ronnie
redémarrer Eclipse après avoir installé l'image ARM, puis créer un nouvel AVD a fonctionné pour moi.
Simon
Peut-être que ce lien peut vous aider: developer.android.com/tools/help/avd-manager.html
Abhijeet

Réponses:

254

L '«Image système ARM EABI v7a» doit être disponible. Installez-le via le gestionnaire Android SDK: Gestionnaire de SDK Android

Un autre indice (voir ici ) - avec

  • Android SDK Tools rev 17 ou supérieur
  • Android 4.0.3 (niveau d'API 15)
  • en utilisant le SDK rev 3 et System Image rev 2 (ou supérieur)

vous pouvez activer l'émulation GPU pour obtenir un émulateur plus rapide: entrez la description de l'image ici

Remarque: selon le commentaire you786, si vous avez déjà créé un émulateur, vous devez le recréer, sinon cela ne fonctionnera pas.

Alternative 1
Intel fournit le « gestionnaire d'exécution accélérée par le matériel Intel », qui est un émulateur basé sur VM pour exécuter des images X86 et qui est également servi par le gestionnaire de SDK Android. Voir un didacticiel pour l'émulateur Intel ici: HAXM accélère l'émulateur Android . Roman Nurik écrit ici que l'émulateur Intel avec Android 4.3 est "ultra rapide".

Alternative 2
Dans les commentaires de l'article ci-dessus, vous pouvez trouver une référence à Genymotion qui prétend être "l'émulateur Android le plus rapide pour les tests et la présentation d'applications". Genymotion fonctionne sur VirtualBox. Voir aussi leur site sur Google+ , ce post de Cyril Mottier et ce guide sur reddit .

Alternative 3
Dans XDA-Forums, j'ai lu sur MEmu - L'émulateur Android le plus puissant pour PC, mieux que les Bluestacks . Vous pouvez trouver l'émulateur ici . Cela m'amène à ...

Alternative 4
... cette entrée du XDA-Forum: Comment utiliser LE RAPIDE! BlueStack comme émulateur de développement Android alternatif . Vous pouvez trouver l'émulateur ici .

ChrLipp
la source
1
Malheureusement, planter sur certaines cartes ATI lorsque l'émulation GPU est activée - dans l'attente d'un émulateur mis à jour.
ChrLipp
23
J'ai trouvé que je devais supprimer l'émulateur et le recréer après l'installation pour résoudre ce problème.
you786
3
@ you786 oui il est important de le recréer
Bobs
1
J'ai fait tout ce qui est possible mais il est toujours là lors du lancement du simulateur
VISHNU GARG
Voir ma réponse ci-dessous.
Marc Rochkind
22

Une autre raison pour laquelle vous pouvez obtenir cette erreur est qu'Eclipse ne trouve pas le fichier correct.

Vérifiez où Eclipse recherche vos fichiers SDK. Vous pouvez le faire sur la ligne de commande. Vous trouverez ci-dessous un exemple de l'invite de commande Windows pour un avd que j'ai créé et nommé 'SonyTabletS':

c:\Program Files (x86)\Android\android-sdk\tools> emulator @SonyTabletS -verbose

La première ligne retournée montre où eclipse recherche les fichiers SDK et ressemblera à quelque chose comme:

emulator: found ANDROID_SDK_ROOT: C:\Program Files (x86)\Android\android-sdk

Assurez-vous que l'emplacement est correct.

Dans mon cas, a ANDROID_SDK_ROOTété initialement défini de manière incorrecte dans mon répertoire personnel. C'est parce que je l'ai configuré de cette façon en suivant aveuglément les instructions d'installation du SDK Sony Tablet S et en ajoutant une ANDROID_SDK_ROOTvariable d'environnement avec le chemin incorrect.

KCD
la source
Dans mon cas, Android \ android-studio \ sdk a été repris l'emplacement ANDROID_SDK_ROOT pendant que j'exécute l'émulateur à partir du dossier Android \ android-sdk. Une fois qu'il pointe correctement vers Android \ android-sdk, cela fonctionne.
noel aye
C'était tout pour moi. Mon environnement de construction utilise une ANDROID_SDK_ROOT que je ne peux pas facilement mettre à jour. Le correctif consistait à lancer une invite de commande propre et à définir ANDROID_SDK_ROOT sur la bonne et à lancer le gestionnaire sdk à partir de là.
Doug Coburn
Vérifiez à nouveau que vous n'avez pas accidentellement installé deux copies du SDK. Si vous êtes comme moi, vous installiez «l'image système ARM EABI v7a» dans une copie mais l'AVD essayait de la trouver dans l'autre copie. J'ai supprimé une de mes copies du SDK, puis mon émulateur a démarré.
sffc
Dans mon cas, mon dossier SDK pointe vers le répertoire correct.
Neon Warge
17

Mon histoire, Eclipse voulait un fichier appelé " kernel-ranchu" dans le dossier de l'image système ( /path/to/android-sdk-macosx/system-images/android-25/google_apis/arm64-v8a).

émulateur: ERREUR: il manque un fichier noyau dans la configuration de cet AVD! Veuillez vous assurer que le fichier "kernel-ranchu" se trouve au même emplacement que votre image système.

émulateur: ERREUR: ANDROID_SDK_ROOT n'est pas défini

Dans ce dossier d'image système, il y avait un fichier appelé " kernel-qemu". Je l'ai simplement renommé " kernel-ranchu" et cela a fonctionné ...

jptsetung
la source
4
Dans mon cas, c'était l'inverse
urnenfeld
15

J'ai eu le même problème. Dans mon cas, il s'est avéré que j'avais installé une autre version du sdk à côté de la version fournie par Android Studio. La modification de ma variable d'environnement ANDROID_SDK_ROOT à la valeur d'origine l'a corrigée pour moi.

Nerdinand
la source
1
Il est important de noter qu'il s'agit d'une réponse tout aussi valable que la réponse principale dans le cas où le SDK a été précédemment installé avant Android Studio. Le bogue est qu'Android Studio devrait remarquer que ANDROID_SDK_ROOT est déjà défini sur un autre emplacement et avertir l'utilisateur lors de l'installation.
Core
Le noyau est correct. Je suis passé d'Eclipse à Android Studio aujourd'hui et c'est ce qui a résolu le problème pour moi.
Pikamander2
12

Voici mon histoire. Sous «Actions» sur le gestionnaire AVD, j'ai consulté les détails de l'AVD qui ne fonctionnait pas. En faisant défiler vers le bas, j'ai trouvé la ligne:

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

J'ai ensuite navigué vers ce fichier à l'adresse:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

J'ai trouvé qu'il n'y avait pas de fichier noyau. Cependant, j'ai trouvé un fichier noyau sur:

C:\Users\XXXX\AppData\Local\Android\sdk\system-images\android-16\default\armeabi-v7a

Alors je l'ai copié et recollé dans:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

L'AVD a alors fonctionné.

CKP78
la source
Merci, cela l'a résolu! Je pense que cela doit être un bug ou qc parce que c'est un comportement très étrange
Hugo
7

Ouvrez AVD Manager en mode Administrateur Sélectionnez VM et cliquez sur Modifier, cliquez sur OK Démarrer VM.

Note de l'éditeur : par mode administrateur, il voulait dire clic droit> Exécuter en tant qu'administrateur sur les plates-formes Windows.

user3313044
la source
Que / où est le «mode administrateur»?
ericpeters0n
Impossible de trouver la VM, pour Mac OS
Frank Fang
4

Si vous savez que le fichier du noyau est installé sur votre ordinateur, le problème est qu'emulator.exe le trouve.

Mon correctif était basé sur le message de user2789389. Je pourrais lancer l'AVD depuis AVD Manager, mais pas depuis la ligne de commande. Ainsi, en utilisant AVD Manager, j'ai sélectionné l'avd que je voulais exécuter et j'ai cliqué sur "Détails". Cela m'a montré le chemin vers le fichier de définition avd. Dans un dossier du même nom, à côté de ce fichier .avd, j'ai trouvé un fichier config.ini. Dans l'ini, j'ai trouvé la ligne suivante:

image.sysdir.1=system-images\android-19\default\armeabi-v7a\

J'ai regardé dans le dossier C: \ Users \ XXXX \ android-sdks \ system-images \ android-19, et j'ai trouvé que le chemin image.sysdir.1 n'était pas valide. J'ai dû supprimer le sous-dossier "par défaut", le changeant ainsi comme suit:

image.sysdir.1=system-images\android-19\armeabi-v7a\

J'ai enregistré l'ini et essayé à nouveau de lancer l'AVD. Cela a résolu le problème!

BuvinJ
la source
Cela ne l'a pas résolu. Sur mon cas, j'ai l'image du système dans le sous-dossier par défaut.
Neon Warge
Vous n'êtes pas obligé de voter pour moi parce que vous avez un problème différent! Cela ne rend pas ma réponse fausse.
BuvinJ
Avez-vous voté contre tous les autres messages ici aussi, car ils n'ont pas résolu votre problème?
BuvinJ
Cela a résolu le problème pour moi, j'exécute sous Mac et le chemin pointe vers image.sysdir.1 = add-ons / addon-google_apis-google-16 / images / armeabi-v7a, en changeant en system-images / android -16 / default / armeabi-v7a a résolu le problème
Felipe juin
3

Assurez-vous que vous avez également configuré correctement un périphérique émulé. Android Studio peut en proposer un qui apparaît dans la liste des appareils émulés mais qui n'est pas configuré pour fonctionner avec la version du SDK que vous utilisez.

Essayez de créer un nouvel appareil émulé dans AVD Manager (Outils-> Android> AVD Manager) et sélectionnez-le comme cible.

kmantel
la source
Essayer de suivre cette voie m'a fait savoir que HAXM n'était pas réellement installé, même si cela montrait que c'était le cas. J'ai été invité à installer Intel HAXM.
Lodlaiden le
2

J'ai installé le gestionnaire de SDK Android et le SDK Android d'hier, et j'obtiens également cette erreur lorsque j'essaye d'exécuter l'émulateur Android immédiatement. Mais, pour le moment, cette erreur disparaît, je pense que le redémarrage de votre système une fois le SDK installé peut résoudre ce problème.

Jack Hu
la source
2

Une pensée intelligente singulière m'est venue après une longue journée de réparation / reconstruction / mises à niveau du SDK / NDK & JDK. Les variables d'environnement doivent être examinées, car le correctif pour mon fichier noyau manquant AVD 'GalaxyS3' était d'étendre la référence des images système à l'absolu.

image.sysdir.1 = C: \ Android \ sdk \ system-images \ android-19 \ armeabi-v7a \

L'ajout de "C: .... sdk \" à l'entrée 'image.sysdir.1 =' dans le fichier 'workspace'.android \ avd \ GalaxyS3.avd \ config.ini a résolu le problème (pour l'instant).

user2789389
la source
2

J'ai mis à jour mon SDK Android vers la dernière version (API 19). Lorsque j'ai essayé d'exécuter l'émulateur avec phonegap 3, la construction a réussi mais elle a rencontré le même problème.

Dans le gestionnaire AVD, il y avait un appareil existant, néanmoins, ses paramètres étaient tous inconnus. Cela se produit sûrement parce que j'ai désinstallé l'ancienne version SDK (API 17) qui renvoie une deuxième erreur lors de la tentative de suppression de l'appareil. Avec le message: "l'appareil est déjà en cours d'exécution"

Pour résoudre le problème, je suis allé à l'emplacement de l'AVD dans ~ / .android / avd / et j'ai supprimé manuellement le répertoire de l'appareil.avd et le fichier device.ini. Enfin, dans le gestionnaire de périphériques, j'ai créé un nouvel AVD fourni par la dernière API.

Cela a permis à phonegap de créer et d'exécuter l'émulateur avec succès

J'espère que ça aide

Bonne journée

snaphuman
la source
2

Suite à la réponse acceptée par ChrLipp en utilisant Android Studio 1.2.2 dans Ubuntu 14.04:

  • Installez le package «ARM EABI v7a System Image» à partir du gestionnaire Android SDK.
  • Supprimez le périphérique virtuel non fonctionnel.
  • Ajoutez un nouvel appareil avec Application Binary Interface (ABI) en tant que armeabi-v7a.
  • Démarrez dans le nouveau périphérique.

Cela a fonctionné pour moi. Essayez de redémarrer votre système s'il ne fonctionne pas pour vous.

beaucoup
la source
2

Voir ma réponse pour l' environnement Android Studio , Mac et "PANIC: programme de moteur d'émulateur manquant pour le processeur 'arm'." .

Pour résoudre ce problème, vous devez spécifier le -kernelchemin manuellement. c'est à dire

$ ~/Library/Android/sdk/emulator/emulator  @Galaxy_Nexus_Jelly_Bean_API_16 -kernel ~/Library/Android/sdk/system-images/android-16/default/armeabi-v7a/kernel-qemu

N'oubliez pas de remplacer le nom Galaxy_Nexus_Jelly_Bean_API_16de l'émulateur par votre propre nom d'émulateur.

La commande ci-dessous consiste à vérifier les émulateurs disponibles pour la ligne de commande.

$ ~/Library/Android/sdk/emulator/emulator -list-avds

Et aussi, assurez-vous que le chemin de votre émulateur est correct, c'est-à-dire celui situé à ~/Library/Android/sdk/emulator/.

Shizhen
la source
2

Si vous obtenez cette erreur en essayant de créer un émulateur pour Android 11 ou Android 10+ (API 30) , assurez-vous de mettre à jour l'émulateur à la dernière version. Vous pouvez le faire depuis Outils -> SDK Manager -> SDK Tools

entrez la description de l'image ici

Arjun
la source
2
C'était tout ce que j'avais à faire! Merci, gentil monsieur!
Devin Norgarb le
1

J'ai essayé ce que ChrLipp a suggéré, mais ce n'était pas le problème, car l'image était déjà installée. Ce que j'ai fait, c'est courir:

android avd

pour démarrer l'émulateur manuellement. Ensuite, j'ai arrêté l'émulateur et formé ce point sur le

cca emulate android

l'application a commencé à fonctionner, sans l'erreur "manquant un fichier noyau".

Marc Rochkind
la source
1

J'ai corrigé ce problème en ajoutant simplement la variable Enviroment ANDROID_SDK_ROOT, dans mon cas, cela se trouvait à C: \ Users \ fera \ AppData \ Local \ Android \ sdk

fera
la source
1

Dans mon propre cas, j'ai eu plusieurs erreurs dont la plupart concernaient ANDROID_SDK_ROOT mal configuré , à la fin de la journée, une chose semblait résoudre le problème.

Suivez le processus suivant:

Après avoir créé un nouvel émulateur sur AVD, allez dans le menu Actions et cliquez sur la flèche pointant vers le bas comme indiqué ci-dessous.

entrez la description de l'image ici

Cliquez sur Afficher sur le disque

Modifier Config.ini

Recherchez image.sysdir.1

il devrait avoir une valeur comme celle-ci: ** image.sysdir.1 = system-images \ android-28 \ google_apis_playstore \ x86 **

Votre propre valeur peut être différente

Maintenant, corrigez le chemin d'Android Sdk pour créer un chemin complet.

image.sysdir.1 = ** C: \ androidsdk ** système-images \ android-28 \ google_apis_playstore \ x86 \

Si vous avez remarqué que le chemin du sdk android montré ci-dessus est différent du sdk android par défaut normal, j'ai dû le déplacer vers C: / androidsdk pour éviter les problèmes de NDK car mon USER HOME principal sur mon PC a des espaces blancs que NDK pourrait ne pas prendre en charge.

REMARQUE: le déplacement du répertoire SDK de son répertoire par défaut est généralement la cause de ces erreurs que l'émulateur AVD donne, en particulier en ce qui concerne le chemin cassé et mal configuré. Le correctif que j'ai fourni ci-dessus est une solution rapide, vous devrez peut-être le faire chaque fois que vous créez un nouvel appareil sur AVD Emulator.

Ce correctif devrait également fonctionner lorsque vous travaillez sur CMD avec cordova.

Akintunde
la source
0

Je voulais juste partager mon expérience sur ce problème. En consultant chacune des réponses ici, cela ne correspondait pas à ma situation. Avoir une image système pour l'API Android 22 provoque cette erreur et la chose étrange est que toutes les variables d'environnement pointent vers les bons répertoires. Cela n'a pas de sens.

La réponse de @BuvinJ avait éclairé le problème. J'ai vérifié le chemin d'accès décrit dans sa réponse et oui ma copie de l'image système réside sous le sous-dossier par défaut lorsque je regarde le répertoire utilisateur (sous Windows).

La chose étrange est qu'il y a aussi un dossier android-sdk dans ANDROID_SDK_ROOT, alors j'ai pensé qu'Eclipse était peut-être à la recherche. En parcourant les sous-dossiers, j'ai découvert que le répertoire ressemblait à ceci:

android-sdk-windows\system-images\android-22\google_apis\armeabi-v7a

Ce répertoire réside sur ANDROID_SDK_ROOT. Il y en a également un autre résidant dans le répertoire utilisateur user / XXXX / android-sdk /.

Eclipse l'attend ici:

android-sdk-windows\system-images\android-22\default\armeabi-v7a

Je viens de changer le répertoire en tant que tel et cela fonctionne maintenant.

Néon Warge
la source
0

Mettez à jour les commandes suivantes dans l'invite de commande dans Windows:

i) android update sdk --no-ui --all // Il met à jour vos packages SDK et cela prend 3 minutes. ii) android update sdk --no-ui --filter platform-tools, tools // Il met à jour les outils de la plateforme et ses packages. iii) android update sdk --no-ui --all --filter extra-android-m2repository // Ceux qui travaillent avec le projet maven mettent à jour ceci pour prendre en charge la dernière bibliothèque de conception de support qui comprendra un référentiel maven android maven supplémentaire.

1) Dans l'invite de commande, il vous demande Y / N. Cliquez sur Y puis il procède à l'installation. 2) Il met à jour tous les fichiers Kernel-qemu et les commandes qt5.dll. afin que l'émulateur fonctionne correctement sans aucun problème.

user12654796
la source
0

Il y avait un fichier appelé kernel-ranchu , je l'ai renommé kernel-qemu .

Cela a résolu mon problème. Merci.

Pravin Ghorle
la source
-1

Pour moi, la mise à jour des outils du SDK a corrigé les erreurs.

Capture d'écran des erreurs et progression de la mise à jour

Fazal Arya
la source
-1

J'ai résolu ce problème en mettant à jour les outils SDK et les outils de plate-forme dans Android SDK Manager vers la dernière version.

Alexandre Andrade
la source