21 votes

Le gestionnaire de périphériques Android ne se lance pas après la mise à jour vers MacOS Big Sur 11.3

Mon Mac vient de subir une mise à jour forcée vers Big Sur 11.3. J'ai essayé d'accéder à l'Android Device Manager pour lancer un appareil émulé et cela a échoué silencieusement à chaque fois. Lorsque j'ai essayé de l'exécuter à partir de la ligne de commande, j'ai obtenu ce message d'erreur :

emulator @Pixel_3a_API_30
emulator: Android emulator version 30.5.5.0 (build_id 7285888) (CL:N/A)
handleCpuAcceleration: feature check for hvf
cannot add library /Users/centuryfall/Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64/vulkan/libvulkan.dylib: failed
added library /Users/centuryfall/Library/Android/sdk/emulator/lib64/vulkan/libvulkan.dylib
cannot add library /Users/centuryfall/Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64/vulkan/libMoltenVK.dylib: failed
HVF error: HV_ERROR
qemu-system-x86_64: failed to initialize HVF: Invalid argument
Failed to open the hax module
No accelerator found.
qemu-system-x86_64: failed to initialize HAX: Operation not supported by device
added library /Users/centuryfall/Library/Android/sdk/emulator/lib64/vulkan/libMoltenVK.dylib

(Remplacement du nom d'utilisateur actuel par "centuryfall").

J'ai regardé d'autres questions qui disent que l'AVD doit être la version 30. J'ai l'AVD v30.5.5.0. Quelqu'un d'autre a-t-il rencontré ce problème ?

54voto

laalto Points 50581

Mise à jour 2021-04-29 : La version 30.5.6 de l'émulateur est maintenant dans le canal stable et corrige ce problème. L'ancienne réponse est conservée ci-dessous.


Apple a modifié les droits (permissions) des hyperviseurs, en dépréciant com.apple.vm.hypervisor avec com.apple.security.hypervisor . Avant que Google ne corrige la signature du code de l'émulateur avec les nouveaux droits, vous pouvez contourner le problème en accordant vous-même le droit.

Créer un fichier entitlements.xml avec le contenu suivant :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.hypervisor</key>
    <true/>
</dict>
</plist>

et exécuter

codesign -s - --entitlements entitlements.xml --force /usr/local/bin/qemu-system-x86_64

Remplacer le chemin de qemu comme nécessaire où votre SDK est situé. Cela peut être par exemple ~/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64 sur certaines installations du SDK.

Réponse basée sur https://www.arthurkoziel.com/qemu-on-macos-big-sur/

Questions connexes :

5voto

Rishabh Saxena Points 1223

Mettez à jour votre émulateur pour vous débarrasser de ce problème.

Suivez les étapes ci-dessous :

Dans votre studio Android, allez dans le SDK Manager -> onglet SDK Tools.

  1. Sélectionnez l'émulateur Android et mettez-le à jour

OU

  1. Décochez Émulateur Android et appliquez
  2. Vérifiez l'émulateur Android et appliquez

Si vous voulez rester avec la version de l'émulateur Android inférieure à 30.5.6 vous pouvez suivre les étapes mentionnées dans la réponse acceptée ici

2voto

UmutTekin Points 33

Si vous obtenez entitlements.xml: cannot read entitlement data erreur, vous devez démarrer le terminal dans le dossier qui contient le fichier qemu-system-x86_64.

Par exemple, mon qemu-system-x86_64 se trouve à cet endroit : /Users/yourusername/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64

Maintenant, faites un clic droit sur darwin-x86_64 et cliquez sur New terminal Tab at Folder . N'oubliez pas de copier votre entitlements.xml dans le fichier darwin-x86_64 dossier. Maintenant, dans ce terminal exécutez la commande que @laalto a dit. Si vous avez des questions, je me ferai un plaisir d'y répondre.

1voto

Visual Sharp Points 948

Pour ceux qui utilisent Xamarin :

Visual Studio Mac Allez dans Préférence. Cliquez sur Android, il vous sera demandé de réparer le SDK. Cliquez dessus et cela devrait résoudre le problème.

enter image description here

Si vous utilisez Cavalier Allez dans Préférences, Android et mettez à jour le SDK de l'émulateur :

enter image description here

0voto

Daniel Kaplan Points 202

J'ai installé Android studio aujourd'hui et j'ai confirmé que la mise à jour est toujours nécessaire.

Utilisez Tools->SDK Manager->SDK Tools pour mettre à jour les deux paquets. Ensuite, créez un nouvel émulateur.

Maintenant emulator --version indique 30.6.5.0 et la commande emulator -avd tak -gpu host lance l'émulateur accéléré par le matériel sans problème.

Remarque : la sortie de l'émulateur affiche toujours deux lignes " cannot add library " suivies de " added library ", bien que le lancement semble correct.

P.s. N'oubliez pas de définir vos variables d'environnement dans votre .bashrc ou .zshrc.

export ANDROID_SDK_ROOT=/Users/dan/Library/Android/sdk
export PATH="$PATH:/Users/dan/Library/Android/sdk/emulator"
export PATH="$PATH:/Users/dan/Library/Android/sdk/tools"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X