web-dev-qa-db-fra.com

L'émulateur Android ne fonctionne pas sur MAC

J'ai essayé d'utiliser l'émulateur Android après avoir téléchargé Android Studio. J'ai déjà utilisé un vieux Samsung S4, mais j'ai besoin de quelque chose de compatible avec Marshmallow pour certaines fonctionnalités. 

Les problèmes que je vois sont:

  • -L'émulateur ne fonctionne pas
  • -Écran Android montre comme si il se prépare à démarrer mais ne le fait pas
  • -Lorsque l'écran Android disparaît après une heure d'attente, l'écran affiche une boîte de dialogue indiquant que le système ne répond pas et d'attendre ou de tuer le processus
  • -Quand j'essaie d'exécuter l'application sur AVD alors que cet écran est affiché, une erreur d'Android Studio s'affiche, indiquant que l'AVD n'a pas installé correctement l'APK Et ne l'a pas désinstallée ni annulée.

Les solutions que j'ai essayées:

  • -Réduction de l’AVD RAM vers 512 et 236 Mo
  • -Éteindre les émulateurs
  • - Désactiver l'audio
  • - Préférences graphiques réglés sur logiciel
  • -Deleting et redownloading tout 
  • -Vérifier que l'API correspond au SDK
  • -Essayer différentes API (25)
  • -Downloading BlueStacks (Je ne savais pas qu'il utilisait KitKat)

La plupart des solutions pour un émulateur lent/qui ne fonctionnait pas étaient liées aux paramètres de l'émulateur que j'avais modifiés et essayés. Cela fait trois jours que je suis coincé dans cette affaire et je recherche une solution pour pouvoir tester mon application nécessitant une API Android de 23 ans et plus. 

Une petite note au cas où je n'aurais pas de chance. J'utilise un MAC mi-2010 fonctionnant sous OSX Sierra, un processeur Core 2 duo, 16 Go de RAM et un disque dur de 1 To. 

** Update J'ai parcouru l'émulateur via la ligne de commande et voici la sortie que je reçois. L'émulateur est toujours en cours de chargement sur l'écran Android, mais aucune sortie n'a été enregistrée au cours des 30 dernières minutes après "Adb connected, start proxing data".

Macs-MacBook-Pro-2:sdk joncorrin$ tools/emulator @Nexus_5X_API_23 -verbose
emulator:Android emulator version 25.3.0.0 (build_id 3394391)
emulator:Found AVD name 'Nexus_5X_API_23'
emulator:Found AVD target architecture: x86
emulator:argv[0]: 'tools/emulator'; program directory: '/Users/mac/Library/Android/sdk/tools'
emulator:  Found directory: /Users/mac/Library/Android/sdk/system-images/Android-23/google_apis/x86/

emulator:Probing for /Users/mac/Library/Android/sdk/system-images/Android-23/google_apis/x86//kernel-ranchu: file exists
emulator:Auto-config: -engine qemu2 (based on configuration)
emulator:  Found directory: /Users/mac/Library/Android/sdk/system-images/Android-23/google_apis/x86/

emulator:try dir /Users/mac/Library/Android/sdk/tools
emulator:try dir tools/
emulator:try dir emulator
emulator:Found target-specific 64-bit emulator binary: emulator/qemu/darwin-x86_64/qemu-system-i386
emulator:Adding library search path: 'emulator/lib64'
emulator:  Found directory: /Users/mac/Library/Android/sdk/system-images/Android-23/google_apis/x86/

emulator:  Found directory: /Users/mac/Library/Android/sdk/system-images/Android-23/google_apis/x86/

emulator:GPU emulation is disabled
emulator: Adding library search path for Qt: 'emulator/lib64/qt/lib'
emulator: Setting Qt plugin search path: QT_QPA_PLATFORM_PLUGIN_PATH=emulator/lib64/qt/plugins
emulator: Running :emulator/qemu/darwin-x86_64/qemu-system-i386
emulator: qemu backend: argv[00] = "emulator/qemu/darwin-x86_64/qemu-system-i386"
emulator: qemu backend: argv[01] = "@Nexus_5X_API_23"
emulator: qemu backend: argv[02] = "-verbose"
emulator: Concatenated backend parameters:
 emulator/qemu/darwin-x86_64/qemu-system-i386 @Nexus_5X_API_23 -verbose
emulator: WARNING: Crash service did not start

emulator: Android virtual device file at: /Users/mac/.Android/avd/Nexus_5X_API_23.ini
emulator: virtual device content at /Users/mac/.Android/avd/Nexus_5X_API_23.avd
emulator: virtual device config file: /Users/mac/.Android/avd/Nexus_5X_API_23.avd/config.ini
emulator: using core hw config path: /Users/mac/.Android/avd/Nexus_5X_API_23.avd/hardware-qemu.ini
emulator: Found AVD target API level: 23
emulator: Read property file at ./system-images/Android-23/google_apis/x86//build.prop
emulator: No boot.prop property file found.
emulator: found skin 'nexus_5x' in directory: /Users/mac/Library/Android/sdk/skins/
emulator: autoconfig: -skin nexus_5x
emulator: autoconfig: -skindir /Users/mac/Library/Android/sdk/skins/
emulator: autoconfig: -kernel ./system-images/Android-23/google_apis/x86//kernel-ranchu
emulator: Target Arch = 'x86'
emulator: Auto-config: -qemu -cpu qemu32
emulator: Auto-detect: Kernel image requires new device naming scheme.
emulator: Auto-detect: Kernel does not support YAFFS2 partitions.
emulator: autoconfig: -ramdisk ./system-images/Android-23/google_apis/x86//ramdisk.img
emulator: Using initial system image: ./system-images/Android-23/google_apis/x86//system.img
emulator: autoconfig: -data /Users/mac/.Android/avd/Nexus_5X_API_23.avd/userdata-qemu.img
emulator: autoconfig: -initdata /Users/mac/.Android/avd/Nexus_5X_API_23.avd/userdata.img
emulator: autoconfig: -cache /Users/mac/.Android/avd/Nexus_5X_API_23.avd/cache.img
emulator: autoconfig: -sdcard /Users/mac/.Android/avd/Nexus_5X_API_23.avd/sdcard.img
emulator: Increasing RAM size to 1024MB
emulator: System image is read only
emulator: GPU emulation is disabled
emulator: Found 2 DNS servers: 75.75.75.75 75.75.76.76
emulator: trying to load skin file '/Users/mac/Library/Android/sdk/skins//nexus_5x/layout'
emulator: CPU Acceleration: working
emulator: CPU Acceleration status: HAXM version 6.0.5 (3) is installed and usable.
emulator: Adjusting Contiguous Memory Allocation of 1080x1920 framebuffer for software renderer to 16MB.
emulator: Found 2 DNS servers: 75.75.75.75 75.75.76.76
Content of hardware configuration file:
  hw.cpu.Arch = x86
  hw.cpu.model = qemu32
  hw.cpu.ncore = 1
  hw.ramSize = 1024
  hw.screen = multi-touch
  hw.mainKeys = false
  hw.trackBall = false
  hw.keyboard = true
  hw.keyboard.lid = false
  hw.keyboard.charmap = qwerty2
  hw.dPad = false
  hw.gsmModem = true
  hw.gps = true
  hw.battery = true
  hw.accelerometer = true
  hw.audioInput = true
  hw.audioOutput = true
  hw.sdCard = true
  hw.sdCard.path = /Users/mac/.Android/avd/Nexus_5X_API_23.avd/sdcard.img
  disk.cachePartition = true
  disk.cachePartition.path = /Users/mac/.Android/avd/Nexus_5X_API_23.avd/cache.img
  disk.cachePartition.size = 66m
  hw.lcd.width = 1080
  hw.lcd.height = 1920
  hw.lcd.depth = 16
  hw.lcd.density = 420
  hw.lcd.backlight = true
  hw.gpu.enabled = false
  hw.gpu.mode = guest
  hw.gpu.blacklisted = no
  hw.initialOrientation = Portrait
  hw.camera.back = emulated
  hw.camera.front = emulated
  vm.heapSize = 256
  hw.sensors.light = true
  hw.sensors.pressure = true
  hw.sensors.humidity = true
  hw.sensors.proximity = true
  hw.sensors.magnetic_field = true
  hw.sensors.orientation = true
  hw.sensors.temperature = true
  hw.useext4 = true
  kernel.path = ./system-images/Android-23/google_apis/x86//kernel-ranchu
  kernel.newDeviceNaming = yes
  kernel.supportsYaffs2 = no
  disk.ramdisk.path = ./system-images/Android-23/google_apis/x86//ramdisk.img
  disk.systemPartition.initPath = ./system-images/Android-23/google_apis/x86//system.img
  disk.systemPartition.size = 1280m
  disk.dataPartition.path = /Users/mac/.Android/avd/Nexus_5X_API_23.avd/userdata-qemu.img
  disk.dataPartition.size = 2g
  disk.encryptionKeyPartition.path = /Users/mac/.Android/avd/Nexus_5X_API_23.avd/encryptionkey.img
  avd.name = Nexus_5X_API_23
.
QEMU options list:
emulator: argv[00] = "emulator/qemu/darwin-x86_64/qemu-system-i386"
emulator: argv[01] = "-dns-server"
emulator: argv[02] = "75.75.75.75,75.75.76.76"
emulator: argv[03] = "-serial"
emulator: argv[04] = "null"
emulator: argv[05] = "-cpu"
emulator: argv[06] = "Android32"
emulator: argv[07] = "-enable-hax"
emulator: argv[08] = "-m"
emulator: argv[09] = "1024"
emulator: argv[10] = "-lcd-density"
emulator: argv[11] = "420"
emulator: argv[12] = "-kernel"
emulator: argv[13] = "./system-images/Android-23/google_apis/x86//kernel-ranchu"
emulator: argv[14] = "-initrd"
emulator: argv[15] = "./system-images/Android-23/google_apis/x86//ramdisk.img"
emulator: argv[16] = "-object"
emulator: argv[17] = "iothread,id=disk-iothread"
emulator: argv[18] = "-drive"
emulator: argv[19] = "if=none,overlap-check=none,cache=unsafe,index=0,id=system,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/system.img.qcow2,read-only"
emulator: argv[20] = "-device"
emulator: argv[21] = "virtio-blk-pci,drive=system,iothread=disk-iothread,modern-pio-notify"
emulator: argv[22] = "-drive"
emulator: argv[23] = "if=none,overlap-check=none,cache=unsafe,index=1,id=cache,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/cache.img.qcow2,l2-cache-size=1048576"
emulator: argv[24] = "-device"
emulator: argv[25] = "virtio-blk-pci,drive=cache,iothread=disk-iothread,modern-pio-notify"
emulator: argv[26] = "-drive"
emulator: argv[27] = "if=none,overlap-check=none,cache=unsafe,index=2,id=userdata,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/userdata-qemu.img.qcow2,l2-cache-size=1048576"
emulator: argv[28] = "-device"
emulator: argv[29] = "virtio-blk-pci,drive=userdata,iothread=disk-iothread,modern-pio-notify"
emulator: argv[30] = "-drive"
emulator: argv[31] = "if=none,overlap-check=none,cache=unsafe,index=3,id=encrypt,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/encryptionkey.img.qcow2,l2-cache-size=1048576"
emulator: argv[32] = "-device"
emulator: argv[33] = "virtio-blk-pci,drive=encrypt,iothread=disk-iothread,modern-pio-notify"
emulator: argv[34] = "-drive"
emulator: argv[35] = "if=none,overlap-check=none,cache=unsafe,index=4,id=sdcard,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/sdcard.img.qcow2,l2-cache-size=1048576"
emulator: argv[36] = "-device"
emulator: argv[37] = "virtio-blk-pci,drive=sdcard,iothread=disk-iothread,modern-pio-notify"
emulator: argv[38] = "-netdev"
emulator: argv[39] = "user,id=mynet"
emulator: argv[40] = "-device"
emulator: argv[41] = "virtio-net-pci,netdev=mynet"
emulator: argv[42] = "-netdev"
emulator: argv[43] = "user,id=mynet2,net=10.0.3.0/24"
emulator: argv[44] = "-device"
emulator: argv[45] = "virtio-net-pci,netdev=mynet2"
emulator: argv[46] = "-show-cursor"
emulator: argv[47] = "-L"
emulator: argv[48] = "emulator/lib/pc-bios"
emulator: argv[49] = "-soundhw"
emulator: argv[50] = "hda"
emulator: argv[51] = "-vga"
emulator: argv[52] = "none"
emulator: argv[53] = "-append"
emulator: argv[54] = "qemu=1 androidboot.hardware=ranchu clocksource=pit Android.qemud=1 console=0 console=0 Android.checkjni=1 qemu.gles=2 qemu.encrypt=1 cma=32M ndns=2"
emulator: argv[55] = "-Android-hw"
emulator: argv[56] = "/Users/mac/.Android/avd/Nexus_5X_API_23.avd/hardware-qemu.ini"
Concatenated QEMU options:
 emulator/qemu/darwin-x86_64/qemu-system-i386 -dns-server 75.75.75.75,75.75.76.76 -serial null -cpu Android32 -enable-hax -m 1024 -lcd-density 420 -kernel ./system-images/Android-23/google_apis/x86//kernel-ranchu -initrd ./system-images/Android-23/google_apis/x86//ramdisk.img -object iothread,id=disk-iothread -drive if=none,overlap-check=none,cache=unsafe,index=0,id=system,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/system.img.qcow2,read-only -device virtio-blk-pci,drive=system,iothread=disk-iothread,modern-pio-notify -drive if=none,overlap-check=none,cache=unsafe,index=1,id=cache,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/cache.img.qcow2,l2-cache-size=1048576 -device virtio-blk-pci,drive=cache,iothread=disk-iothread,modern-pio-notify -drive if=none,overlap-check=none,cache=unsafe,index=2,id=userdata,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/userdata-qemu.img.qcow2,l2-cache-size=1048576 -device virtio-blk-pci,drive=userdata,iothread=disk-iothread,modern-pio-notify -drive if=none,overlap-check=none,cache=unsafe,index=3,id=encrypt,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/encryptionkey.img.qcow2,l2-cache-size=1048576 -device virtio-blk-pci,drive=encrypt,iothread=disk-iothread,modern-pio-notify -drive if=none,overlap-check=none,cache=unsafe,index=4,id=sdcard,file=/Users/mac/.Android/avd/Nexus_5X_API_23.avd/sdcard.img.qcow2,l2-cache-size=1048576 -device virtio-blk-pci,drive=sdcard,iothread=disk-iothread,modern-pio-notify -netdev user,id=mynet -device virtio-net-pci,netdev=mynet -netdev user,id=mynet2,net=10.0.3.0/24 -device virtio-net-pci,netdev=mynet2 -show-cursor -L emulator/lib/pc-bios -soundhw hda -vga none -append 'qemu=1 androidboot.hardware=ranchu clocksource=pit Android.qemud=1 console=0 console=0 Android.checkjni=1 qemu.gles=2 qemu.encrypt=1 cma=32M ndns=2' -Android-hw /Users/mac/.Android/avd/Nexus_5X_API_23.avd/hardware-qemu.ini
emulator: Starting QEMU main loop
Hax is enabled
Hax ram_size 0x40000000
emulator: registered 'boot-properties' qemud service
emulator: Adding boot property: 'qemu.sf.fake_camera' = 'both'
emulator: Adding boot property: 'ro.opengles.version' = '131072'
emulator: Adding boot property: 'dalvik.vm.heapsize' = '256m'
emulator: Adding boot property: 'qemu.hw.mainkeys' = '0'
emulator: Adding boot property: 'qemu.adb.secure' = '1'
emulator: Adding boot property: 'qemu.sf.lcd_density' = '420'
HAX is working and emulator runs in fast virt mode.
emulator: goldfish_events.have-dpad: false
emulator: goldfish_events.have-trackball: false
emulator: goldfish_events.have-camera: true
emulator: goldfish_events.have-keyboard: true
emulator: goldfish_events.have-lidswitch: false
emulator: goldfish_events.have-touch: false
emulator: goldfish_events.have-multitouch: true
emulator: control console listening on port 5554, ADB on port 5555
Not using any http proxy
emulator: Android_hw_fingerprint_init: fingerprint qemud listen service initialized

emulator: onGuestSendCommand: [0x7f80950cdc00] Adb connected, start proxing data

**METTRE À JOUR 

sortie enregistrée: 

emulator: _hwFingerprint_connect: connect finger print listen is called

  emulator: got message from guest system fingerprint HAL

dans les 30 dernières minutes. 

Android affiche un écran lent indiquant "Démarrage d'Android Process", puis 30 minutes plus tard, un écran figé indiquant que l'interface utilisateur du système ne répond pas est masqué par une boîte de dialogue de débogage. Voir les images. Lorsque je clique, l'interface utilisateur ne répond pas et les journaux n'enregistrent rien au-delà de ce que j'ai posté. 

 enter image description here

15
Jonathan Corrin

Avez-vous installé Docker pour Mac par hasard? Je faisais juste face au même problème et l'arrêt de Docker a résolu le problème ...

19
varun

Vous pouvez également essayer de lancer l'émulateur à partir de la ligne de commande. 

  • cd $ Android_SDK_ROOT
  • outils/émulateur -list-avds
  • tools/emulator @name_of_avd -verbose

Si vous rencontrez des problèmes, vous pouvez partager le résultat de la dernière commande. La valeur de l'environnement Android_SDK_ROOT doit pointer sur l'emplacement du SDK Android. Vous pouvez le trouver dans Android studio sous le menu Outils-> Gestionnaire SDK. 

11
Erwin Jansen

Voici ce qui a finalement fonctionné pour moi:

Dans Android Studio (Mac OS X), ouvrez AVD Manager. Cliquez sur le triangle pointant vers le bas sur le périphérique virtuel Android incriminé pour afficher un menu déroulant. Ensuite, frappez Delete avec une grande vengeance et une colère furieuse .

Cela fait, cliquez sur + Create Virtual Device…. Laissez la plupart des paramètres par défaut, puis lancez votre nouvel appareil virtuel comme s'il s'agissait d'un délicieux hamburger. 

Espérons que cela fonctionnera pour vous aussi. ^^

2
Kebman

Celui-ci a fonctionné pour moi

  1. Supprimez tous les DAV que vous avez actuellement.
  2. Allez dans Préférences >> SDK Android >> Outils SDK
  3. Désinstallez Android Emulator
  4. Redémarrez Android Studio.
  5. Réinstallez Android Emulator à partir du même endroit.
  6. Créez un nouvel émulateur! J'espère que cela vous aidera.
2
Saneesh

Sur mon ancien Mac (mi-2010 2,8Ghz i5), j'ai eu le même problème et je souhaite partager ma solution avec la communauté pour une utilisation future:

  1. Désinstallez tous les AVD de la liste.
  2. Téléchargez la dernière version de HAXM https://software.intel.com/en-us/Android/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-mac-os-x
  3. Installez-le manuellement (il désinstallera automatiquement la version précédente sur demande)
  4. Générez un nouveau fichier AVD pour une image x86.
1
Tina Zh

Une autre option si l’émulateur se bloque juste avant de lancer la fenêtre principale sur mac: comme indiqué dans varun , Docker sera l’un des coupables et quelque chose qui utilise vcpu, dans mon cas, Virtualbox. Assurez-vous de tuer tous les processus vbox .... 

0
Matthew Trout

Pour moi, changer le 'Graphisme' de 'Automatique' en 'Logiciel - GLES 2.0' dans la Configuration du périphérique virtuel, s’est bien déroulé sur mon macOS Sierra

0
Gilad M