Подтвердить что ты не робот

Ошибка сегментации эмулятора Android

Запуск из командной строки привел к ошибке сегментации:

$ emulator -avd nexus_s
Segmentation fault (core dumped)

Тем не менее, запуск эмулятора-манипулятора непосредственно следующим образом, работает нормально.

$ emulator-arm -avd nexus_s

Я подозреваю, что он пытается запустить mips или x86 версию эмулятора. Есть ли способ настроить эмулятор, для которого запускается исполняемый файл?

Все это началось после обновления до android sdk 17.

Добавление флага -verbose дает следующий результат (который, я думаю, не добавляет никакой информации):

$ 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)
4b9b3361

Ответ 1

Наконец-то я нашел решение после следующего опроса CommonsWare. Переименование libOpenglRender.so заставило проблему уйти.

mv tools/lib/libOpenglRender.so tools/lib/libOpenglRender.so.xxx

Ответ 2

В моей системе Ubuntu 12.04 я решил эту проблему, убедившись, что "Использовать главный GPU" не включен в конфигурации AVD.

Ответ 3

Введите команду

$emulator-arm @nexus_s

Надеюсь, что это поможет: -)

Ответ 4

У меня была такая же проблема с Debian Wheezy. Ответ на grebulon - для меня работал, однако эмулятор был sloooooow, поэтому я решил исправить его в правильном направлении (tm).

В этом случае Segmentation fault, вероятно, указывает проблемы с OpenGL. (обратите внимание, что последняя строка журнала "эмулятор: Инициализация аппаратной поддержки эмуляции OpenGLES" )

В моем случае поиск "GL" через /var/log/Xorg.0.log показал некоторый драйвер NVidia GLX (от старой видеокарты, которая попала на цифровые небеса). Учитывая тот факт, что у меня есть AMD Radeon, я удалил каждый пакет с "nvidia" в нем (список: apt-get search nvidia | grep ^i) и установил:

# apt-get install libgl1-fglrx-glx

После перезагрузки эмулятор жаловался на отсутствие libOpenglRender.so и libGL.so, который я решил следующим образом:

# 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

Обратите внимание, что моя ситуация, вероятно, уникальна (проблемы начались, когда я перешел с NVidia на AMD), но корень проблемы, вероятно, подобен (OpenGL). Надеюсь, это поможет кому-то.

UPDATE: по-прежнему не работает, похоже, что мои драйверы не поддерживают 16-битные цвета в OpenGL... далее исследуют.

Ответ 5

Если вы не нашли ответ здесь, вы должны подписаться на:

Там вы получите обновления об этой проблеме и найдете некоторые обходные пути (например, переименование файлов lib *. *).

Ответ 6

Стирание данных и устройство холодной загрузки через Android Studio решило эту проблему в Ubuntu 16.04.