Défaut de segmentation de l'émulateur Android

L'exécuter à partir de la ligne de commande a produit un défaut de segmentation:

$ emulator -avd nexus_s
Segmentation fault (core dumped)

cependant, exécuter emulator-arm directement comme suit, fonctionne très bien.

$ emulator-arm -avd nexus_s

je soupçonne qu'il essaie d'exécuter la version mips ou x86 de l'émulateur. Est-il un moyen de configurer l'émulateur qui exécutable pour démarrer?

tout cela a commencé après la mise à jour vers android sdk 17.

ajouter le drapeau-verbose donne la sortie suivante (qui je ne pense pas ajoute info):

$ emulator -verbose -avd nexus_s
emulator: found SDK root at /opt/sdk
emulator: Android virtual device file at: /home/grebulon/.android/avd/nexus_s.ini
emulator: virtual device content at /home/grebulon/.android/avd/nexus_s.avd
emulator: virtual device config file: /home/grebulon/.android/avd/nexus_s.avd/config.ini
emulator: using core hw config path: /home/grebulon/.android/avd/nexus_s.avd/hardware-qemu.ini
emulator: Found AVD target API level: 17
emulator: 'magic' skin format detected: 480x800
emulator: autoconfig: -skin 480x800
emulator: autoconfig: -skindir (null)
emulator: keyset loaded from: /home/grebulon/.android/default.keyset
emulator: found magic skin width=480 height=800 bpp=16

emulator: autoconfig: -kernel /opt/sdk/system-images/android-17/armeabi-v7a//kernel-qemu
emulator: autoconfig: -ramdisk /opt/sdk/add-ons/addon-google_apis-google-17/images/armeabi-v7a//ramdisk.img
emulator: Using initial system image: /opt/sdk/add-ons/addon-google_apis-google-17/images/armeabi-v7a//system.img
emulator: autoconfig: -data /home/grebulon/.android/avd/nexus_s.avd/userdata-qemu.img
emulator: autoconfig: -initdata /home/grebulon/.android/avd/nexus_s.avd/userdata.img
emulator: autoconfig: -cache /home/grebulon/.android/avd/nexus_s.avd/cache.img
emulator: Physical RAM size: 343MB

Content of hardware configuration file:
  hw.cpu.arch = arm
  hw.cpu.model = cortex-a8
  hw.ramSize = 343
  hw.screen = touch
  hw.mainKeys = yes
  hw.trackBall = no
  hw.keyboard = no
  hw.keyboard.lid = no
  hw.keyboard.charmap = qwerty2
  hw.dPad = no
  hw.gsmModem = yes
  hw.gps = yes
  hw.battery = no
  hw.accelerometer = yes
  hw.audioInput = yes
  hw.audioOutput = yes
  hw.sdCard = yes
  disk.cachePartition = yes
  disk.cachePartition.path = /home/grebulon/.android/avd/nexus_s.avd/cache.img
  disk.cachePartition.size = 66m
  hw.lcd.width = 480
  hw.lcd.height = 800
  hw.lcd.depth = 16
  hw.lcd.density = 240
  hw.lcd.backlight = yes
  hw.gpu.enabled = yes
  hw.camera.back = none
  hw.camera.front = none
  vm.heapSize = 32
  hw.sensors.proximity = yes
  hw.sensors.magnetic_field = yes
  hw.sensors.orientation = yes
  hw.sensors.temperature = yes
  kernel.path = /opt/sdk/system-images/android-17/armeabi-v7a//kernel-qemu
  kernel.parameters =  android.checkjni=1
  disk.ramdisk.path = /opt/sdk/add-ons/addon-google_apis-google-17/images/armeabi-v7a//ramdisk.img
  disk.systemPartition.initPath = /opt/sdk/add-ons/addon-google_apis-google-17/images/armeabi-v7a//system.img
  disk.systemPartition.size = 200m
  disk.dataPartition.path = /home/grebulon/.android/avd/nexus_s.avd/userdata-qemu.img
  disk.dataPartition.size = 209m
  avd.name = nexus_s
.
QEMU options list:
emulator: argv[00] = "/opt/sdk/tools/emulator64-arm"
emulator: argv[01] = "-android-hw"
emulator: argv[02] = "/home/grebulon/.android/avd/nexus_s.avd/hardware-qemu.ini"
Concatenated QEMU options:
 /opt/sdk/tools/emulator64-arm -android-hw /home/grebulon/.android/avd/nexus_s.avd    /hardware-qemu.ini
emulator: registered 'boot-properties' qemud service
emulator: nand_add_dev: system,size=0xc800000,initfile=/opt/sdk/add-ons/addon-google_apis-google-17/images/armeabi-v7a//system.img
emulator: mapping 'system' NAND image to /tmp/android-grebulon/emulator-RSuUtb
emulator: rounding devsize up to a full eraseunit, now c810000

emulator: nand_add_dev: userdata,size=0xd100000,file=/home/grebulon/.android/avd/nexus_s.avd/userdata-qemu.img
emulator: rounding devsize up to a full eraseunit, now d116000

emulator: registered 'boot-properties' qemud service
emulator: Adding boot property: 'dalvik.vm.heapsize' = '32m'
emulator: Adding boot property: 'qemu.sf.lcd_density' = '240'
emulator: Adding boot property: 'qemu.hw.mainkeys' = '1'
emulator: Adding boot property: 'qemu.sf.fake_camera' = 'none'
emulator: nand_add_dev: cache,size=0x4200000,file=/home/grebulon/.android/avd/nexus_s.avd/cache.img
emulator: Initializing hardware OpenGLES emulation support
Segmentation fault (core dumped)
19
demandé sur grebulon 2012-12-22 02:03:50

5 réponses

j'ai finalement trouvé une solution après avoir suivi le Conseil de CommonsWare. Renommer libOpenglRender.ça a réglé le problème.

mv tools/lib/libOpenglRender.so tools/lib/libOpenglRender.so.xxx
24
répondu grebulon 2012-12-29 14:17:06

sur mon système Ubuntu 12.04, j'ai résolu ce problème en m'assurant que "Use Host GPU" n'était pas activé dans la configuration AVD.

2
répondu lilbyrdie 2013-11-11 12:37:52

Taper la commande

$ émulateur arm @nexus_s

Espérons que cela aide :-)

1
répondu Arif Ahsan 2013-11-16 19:27:55

J'ai eu le même problème sur Debian Wheezy. La réponse du grebulon a fonctionné pour moi, mais l'émulateur était glissant, alors je me suis mis en route pour le réparer de la bonne façon (tm).

Dans ce cas Segmentation fault indique probablement des problèmes avec OpenGL. (notez que la dernière ligne du journal est "émulateur: Initialisation du matériel OpenGLES de l'émulation")

dans mon cas, recherche de 'GL' par /var/log/Xorg.0.log montré un certain pilote nvidia GLX (de la vieille carte vidéo qui est allé à numérique ciel). Etant donné que J'ai AMD Radeon, j'ai désinstallé chaque paquet contenant 'nvidia' (liste:apt-get search nvidia | grep ^i) et installé:

# apt-get install libgl1-fglrx-glx

Après le redémarrage de l'émulateur est plaint de l'absence de libOpenglRender.so et libGL.so, que j'ai résolu comme ceci:

# echo "/opt/adt/sdk/tools/lib" > /etc/ld.so.conf.d/android_stuff.conf
# ldconfig
# cd /opt/adt/sdk/tools/lib
# ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 libGL.so

notez que ma situation est probablement unique (les problèmes ont commencé quand je suis passé de NVIDIA à AMD), mais la racine du problème est probablement similaire (OpenGL). J'espère que cela aide quelqu'un.

mise à jour: still ne fonctionne pas, il semble que mes pilotes ne prennent pas en charge les couleurs 16 bits dans OpenGL... étudierons plus loin.

0
répondu johndodo 2014-01-17 21:18:53

Si vous ne trouvez pas la réponse ici, vous devez vous abonner à:

  1. Problème 34233: Émulateur de démarrer produit segmentation fault après la mise à jour r20
  2. Problème 55325: l'Émulateur plante avec erreur de segmentation
  3. numéro 20952: émulateur segfault au démarrage (sans rapport avec l'audio)

vous y recevrez des mises à jour sur cette question et y trouverez quelques solutions de rechange (comme renommer lib*.* fichier.)

0
répondu warmth 2014-01-29 17:12:10