Я попытался создать AVD для Jellybean (API 17) в Kubuntu 17.04, используя следующую процедуру:
-
Запустите AVD Manager из Android Studio
-
Нажмите кнопку "Создать виртуальное устройство":
-
Выберите аппаратный профиль Nexus 4:
-
Нажмите "Далее"
-
Перейдите на вкладку "Изображения x86" и выберите "Jelly Bean/17/x86/Android 4.2 (с API Google)":
-
Нажмите "Далее"
-
Оставьте настройки по умолчанию:
-
Нажмите "Готово"
Теперь из-за неудачной проблемы с Ubuntu 17.04 (и ее производными) невозможно запустить эмулятор напрямую, нажав кнопку воспроизведения рядом со своей записью. (Щелчок на нем ничего не делает.) Вместо этого я должен запустить эмулятор с терминала с помощью
$ cd ~/Android/Sdk/tools
$ LD_PRELOAD='/usr/$LIB/libstdc++.so.6' ./emulator -avd Nexus_4_API_17
Эмулятор запускается и появляется главный экран:
Однако взаимодействие с ним сразу показывает, что есть проблема. На камере отображается сообщение об ошибке:
Нажатие "Хранилище" в приложении "Настройки" приводит к сбою приложения "Настройки".
Что я сделал неправильно и как я могу это исправить?
Изменить: Я нажал кнопку "Показать дополнительные настройки" и подтвердил, что необходимо создать SD-карту:
Я также подтвердил, что файл ~/.android/avd/Nexus_4_API_17.avd/sdcard.img.qcow2
существует.
Изменить: Я выполнил ту же процедуру для создания Kit Kat AVD (используя аппаратный профиль Nexus 5), и проблема там отсутствует. Карта SD работает должным образом.
Изменить: Я попытался использовать mksdcard
, чтобы вручную создать образ SD-карты:
mksdcard -l TEST 100M sdcard.img
... и затем передавая его непосредственно эмулятору:
emulator -sdcard sdcard.img -avd [...]
... но это не имело значения.
Однако я обнаружил что-то интересное после открытия корневого терминала на устройстве (используя adb shell
) и запуская команды mount
и df
:
# mount rootfs / rootfs ro,relatime 0 0 tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0 devpts /dev/pts devpts rw,relatime,mode=600 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0 tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0 tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0 /dev/block/vda /system ext4 ro,relatime,data=ordered 0 0 /dev/block/vdb /cache ext4 rw,nosuid,nodev,noatime,errors=panic,data=ordered 0 0 /dev/block/vdc /data ext4 rw,nosuid,nodev,noatime,errors=panic,data=ordered 0 0 # df Filesystem Size Used Free Blksize /dev 757M 68K 757M 4096 /mnt/secure 757M 0K 757M 4096 /mnt/asec 757M 0K 757M 4096 /mnt/obb 757M 0K 757M 4096 /system 532M 349M 183M 4096 /cache 60M 40K 60M 4096 /data 1G 75M 1G 4096
Кажется, что SD-карта не монтируется, так как /dev/block/vdd
отсутствует в выводе выше, и ни один из разделов не имеет значения 100M.