Хочется, но не удаётся |
для GNU/Linux илиERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib
emulator/qemu/windows-x86_64/qemu-system-i386.exe': No such file or directoryдля Windows, то вам сюда.
Первое, что нужно сделать — это убедиться, что эмулятор вообще можно запустить из командной строки. Перейдите в каталог с SDK, а там — в директорию tools, где лежит эмулятор. Для меня это команда
cd $ANDROID_HOME/emulator/Но у вас может быть другой, не важно. Теперь запускаем эмлятор отсюда. Если не помните названия своих эмуляторо, то сначала посмотрите их:
umnik@um:~/Android/Sdk/emulator$ ./emulator -list-avdsи она возвращает список существующих эмуляторов:
Nexus_4_API_22Если у вас точно есть созданные эмуляторы, Студия их запускает, но эта команда сообщает, что эмуляторов нет, то вам нужно создать переменную окружения ANDROID_AVD_HOME с указанием пути к эмуляторам. Узнать путь можно прямо из Студии:
Nexus_5X_API_26
Nexus_5_API_18
Находим виртуалки на диске |
/home/umnik/.android/avd/Делаем то, что нужно в вашей ОС для применения переменной окружения (от простого перезапуска терминала до перезахода в сеанс пользователя).
Убеждаемся, что теперь запуск эмулятора из каталога $ANDROID_HOME/tools не приводит к проблемам, эмулятор успешно стартует:
umnik@um:~/Android/Sdk/emulator$ ./emulator @Nexus_5_API_18Если запустился, то считайте, что проблема решена. Вариантов костылей у вас несколько, но все они сводятся к двум конкретным:
emulator: WARNING: encryption is off
FramebufferData::restore: warning: a texture is deleted without unbinding FBO
FramebufferData::restore: warning: a texture is deleted without unbinding FBO
Warning: restoring GLES1 context from snapshot. App may need reloading.
- Любым удобным способом указать системе, что при запуске эмулятора его нужно запускать с учётом полного пути
- Любым удобным способом передать эмулятору недостающие библиотеки
- Можете добавить в ~/.bashrc вот это:
function emulator { cd "$(dirname "$(which emulator)")" && ./emulator "$@"; }
- Либо вы можете создать свой alias на эмулятор:
umnik@um:/$ emulator @Nexus_5_API_18Разумеется алиас тоже нужно добавить в ~/.bashrc или где у вас там принято сохранять алиасы
[140147225495360]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib
Could not launch '/../emulator/qemu/linux-x86_64/qemu-system-i386': No such file or directory
umnik@um:/$ alias emulator=$ANDROID_HOME/emulator/emulator
umnik@um:/$ emulator @Nexus_5_API_18
emulator: WARNING: encryption is off
^Cemulator: Saving state on exit with session uptime 2071 ms
umnik@um:/$
- Вы даже можете создать переменную окружения $emulator (%emulator%) и вызывать её, хотя это не так удобно
cd $ANDROID_HOME/emulator/lib64/libstdc++$Лично для себя я выбрал алиас в ~/.bashrc. Тем более что можно сделать алиас сразу на конкретный эмулятор и тогда команда типа "nexus4_43" будет запускать эмулятор Nexus 4 с Android 4.3. В общем, вариантов у вас несколько — думайте сами.
mv libstdc++.so.6 libstdc++.so.6.bak
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 $ANDROID_HOME/emulator/lib64/libstdc++/libstdc++.so.6
В конце-концов, вы можете попытаться дождаться реального фикса проблемы, который обещали ещё в 26 версии, а сейчас актуальная 27. Дождаться фикса баги, статус которой сейчас Fixed. Успехов!
Комментариев нет:
Отправить комментарий