Невозможно запустить AVD в эмуляторе: библиотека QT не найдена


132

Я новичок в Android Studio, и у меня возникают проблемы при использовании эмулятора. Когда я пытаюсь запустить его, он продолжает вылетать со словами:

«Невозможно запустить AVD в эмуляторе» [6816]: ОШИБКА: ./ android / qt / qt_setup.cpp: 28: Библиотека Qt не найдена в C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator \ lib64 \ qt \ Lib

Не удалось запустить C: \ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator / qemu / windows-x86_64 / qemu-system-i386.exe: нет такого файла или каталога

Я включил VT-x в настройках BIOS, но проблема не устранена. Я много искал и не могу найти ответа. Любая помощь будет высоко ценится. Кто-нибудь может дать мне решение?

Скриншот ошибки Снимок журнала


смотри мой ответ. Это сработало отлично.
Уддхав Гаутам

Ответы:


158

Похоже, это проблема, связанная с недавним обновлением. Временное решение - запустить эмулятор из /path/to/android-sdk/toolsкаталога в командной строке.

См. Https://code.google.com/p/android/issues/detail?id=235461, чтобы узнать о проблеме.


6
Я запускаю эмулятор из Android / sdk / tools, но все еще получаю ошибку QT.
Гонсало

3
У меня была такая же проблема, и это решение мне подходит.
Gontard

2
Последние обновления от вчерашнего дня. У меня работал запуск из каталога <Android SDK> / tools, но на моем пути также есть / tools и / platform-tools. Они должны это исправить.
Шон Айткен

13
Комментарий № 25 к проблеме исправил ее для меня
Gregriggins36,

1
Работал для меня, но я должен был дополнительно использовать в -use-system-libsкачестве аргумента к emulatorнаходятся в инструментах директории.
Rany Albeg Wein

105

Все остальные ответы не сработали для меня, поскольку «Эмулятор Android» не был установлен со стандартной установкой Android Studio. Убедитесь, что вы установили его, а затем при необходимости попробуйте другие ответы.введите описание изображения здесь


2
Установка "Android Emulator" также устранила это для меня. После этого я смог снова запустить эмулятор, но получил следующую ошибку HAXM «unknown hax vcpu return 1». Простая перезагрузка машины окончательно решила все проблемы. (См .: stackoverflow.com/a/41867405/2350644 )
user2350644

2
установка эмулятора изнутри Android Studio тоже работала для меня. Теперь я могу запускать эмулятор и из командной строки.
abhinavgoyal02

3
Большое спасибо, я решил мою проблему после потраченных 3 часов :(
Hossam Ghareeb

1
У меня возникла проблема с запуском эмулятора на Mac. Раньше он вылетал после запуска без какого-либо сообщения. Твой совет помог мне.
Ростислав Рошак

3
Это мне тоже помогло. В основном с моей новой установкой Android Studio после запуска обновлений и первой попытки запустить изображение в эмуляторе. Это была ошибка. И да, вполне логично, что вам нужно установить эмулятор, если вы хотите его использовать. Было бы неплохо, если бы Android Studio просто сказала: «Вы хотите запустить виртуальное устройство на предоставляемом нами эмуляторе, но сначала вам нужно установить этот эмулятор, хотите ли вы установить его сейчас?» ....
morksinaanab

82

Для систем Linux или Mac вы можете добавить следующее ~/.profile(или ~/.bashrc):

function emulator { cd "$(dirname "$(which emulator)")" && ./emulator "$@"; }

затем запустите, чтобы загрузить изменения:

source ~/.profile

(или source ~/.bashrcконечно)

Это позволит выполнять, emulatorпока проблема не будет устранена.

(на основе #10 yanokwaкомментариев из https://code.google.com/p/android/issues/detail?id=235461 )


попробовал это с SDK Tools 25.3.1 и ubuntu 16.10, и это не сработало, начал получать ошибки libGL
vallllll

я использовал which emulatorв OSX, чтобы найти папку
V-SHY

@vallllll Я тестировал только на Mac, но он должен работать и на Linux. Умеете ли вы работать в Android Studio?
J. Коста

7
В zsh используйте whence -pвместо which. Также вставьте cd ... && ...скобки, чтобы выполнить их в подоболочке, чтобы избежать изменения каталога в текущей оболочке.
mixel

11
Я могу подтвердить, что он работает на linux и zsh с модификациями @ mixel:function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }
Энди Джонс,

63

Я установил последнюю версию Android Emulator 26.1.2, которая решила эту проблему.

Кстати, если в вашем PATH у вас есть оба этих:

  • C:\AndroidSDK\tools

  • C:\AndroidSDK\emulator

Команда emulatorпопытается использовать emulator.exe внутри папки с инструментами, которая не работает.

Чтобы решить эту проблему в вашем PATH, вам нужно переместить C:\AndroidSDK\emulator строку перед каталогом инструментов, таким образом, исполняемый файл эмулятора будет сначала найден внутри папки эмулятора и будет иметь приоритет над тем, который присутствует в папке инструментов.

MacOS: если у вас есть Mac, вы можете двигаться ~/Library/Android/sdk/emulatorраньше ~/Library/Android/sdk/tools


8
emulatorмне помогло добавление директории в путь
Koen.

14
добавление ~ / Library / Android / sdk / emulator перед ~ / Library / Android / sdk / tools исправляет это и в Mac OS,
Джейкоб

3
Да, используя Mac OS, я поставил эмулятор перед остальными в PATH, и он работает
Аарон Гонг

1
Спасибо - добавление emulatorранее toolsв путь у меня работало в Linux.
Ванесса Диган

Спасибо, я добавил путь к переменным окружения и разобрал его прямо. Win10. Также, как упоминалось выше, запись эмулятора до Tools.
Франсуа Мюллер

20

простое решение - добавить этот псевдоним в ваш .bashrc .profileили эквивалентный

alias emu="$ANDROID_HOME/tools/emulator"

тогда source .bashrcили .profileили просто откройте новый терминал

наконец, запустить ваш эмулятор будет так же просто, как emu -avd name


2
+1 за псевдоним, который решил это за меня. Я не определил ANDROID_HOME, поэтому просто заменил нормальный путь. Не уверен, почему у большинства он есть, а у меня нет ... Я на Mac.
TahoeWolverine

12

Пользователи Zsh могут добавлять:

function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }

к .zshrc(или .zshenv).

Загрузить изменения в текущую оболочку путем поиска измененного файла:

source ~/.zshrc

Теперь вы можете использовать emulatorкоманду в Zsh.

Спасибо Дж. Косте за ответ bash.


10

У меня была такая же проблема с последней Android Studio, установленной только вчера на Macbook.

Хотя бинарный файл эмулятора был доступен в папке sdk / tools, пакет Android Emulator не был установлен. Выберите «Эмулятор Android» в Android Studio-> «Настройки» -> «Системные настройки» -> Android SDK, загрузите пакет эмулятора и установите его.

После установки эмулятора я могу запустить эмулятор.


Мне пришлось перезапустить Android Studio после этого.
Адам Джонс

Для Linux, перейдите наTools -> Android -> SDK Manager -> SDK Tools -> Activate 'Android Emulator' -> OK
Mitja

Решение тоже сработало, @AdamJohns без перезапуска;)
AamirR

7

Прежде всего, тема проблем в Google Issue Tracker уже была решена. Вам больше не нужно устанавливать переменную среды LD_LIBRARY_PATHкак обходной путь. Но вам нужно обновить Android SDK и использовать ПОСЛЕДНИЙ emulator пакет (двоичные файлы). Без этого вы все равно будете видеть досадные QTошибки.

Затем важно убедиться, что для запуска эмулятора установлены необходимые пакеты SDK. При установке определенного образа эмулятора sdkmanager, он не будет проверять или просить вас установить необходимые зависимости. Всякий раз, когда вы видите ошибку, на которую жалуются ANDROID_SDK_ROOT, например, PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOTили PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value, это именно из-за этого.

Таким образом, 3 других существенных зависимости помимо образа эмулятора:

  • platform-tools
  • platforms;android-<api_level>
  • emulator

Который вы можете установить через:

sdkmanager "platform-tools" "platforms;android-<api_level>" "emulator"

Это api_levelтот же уровень API, что и у вашего изображения эмулятора.


М-х-м-м, я PANIC: Missing emulator engine program for 'x86' CPU.также понял, где должен быть SDK_ROOTсмысл? просто ANDROID_HOME?
Кемури

Я только что узнал, что emulatorсейчас сидит, sdk/emulatorи тот, кто из инструмента, вызывает эту ошибку.
Кемури

5

Для тех, кто все еще испытывает проблему даже при выполнении команды из .../Sdk/toolsкаталога, попробуйте добавить -use-system-libsаргумент.

Так должно быть в следующем формате:

path/to/Sdk/emulator -use-system-libs -avd [AVD-NAME]

Для меня вот пример:

/home/cillian/Android/Sdk/emulator -use-system-libs -avd Nexus5


2
протестировал это на моем Ubuntu 16.10, и это единственное, что работает, я просто использую эмулятор -use-system-libs -avd Pixel_XL_API_25.
vallllll

5

У меня была такая же проблема, и я решил ее, установив эмулятор, потому что каким-то образом обновления, похоже, удалили его. Сделайте это из Android Studio tools-> SDK manager. Надеюсь это поможет


Переустановка эмулятора из SDK Manager устранила ошибку Qt, но тогда у меня возникла еще одна проблема с HAX. Используя Mac.
Gennon

Устранена проблема HAX путем выхода из Docker на моем компьютере. Придется запускать эмулятор из каталога инструментов. Или я снова получаю ошибку Qt.
Gennon

4

Я установил Android Studio 2.3.3 (сегодня 2017-08-01) на Windows 10 x64

Та же проблема.

  • Я вручную установил эмулятор из Android Studio -> Инструменты -> Android -> Sdk Manager -> Инструменты SDK -> Эмулятор Android (версия 26.1.2)

  • После установки ... та же проблема

  • Я добавил свой путь из папки эмулятора в переменные окружения до пути к инструменту (как в одном ответе выше), но все еще проблема.
  • Затем я удалил emulator.exe и emulator-check.exe из папки инструментов, и это решило проблему.


3

Эта проблема, кажется, исправлена ​​в Cordova версии 7.0.X

Если вы используете Cordova версии 6.5.0, вы можете легко это исправить.

Корень проблемы находится в файле emulator.js, который находится в корневом каталоге вашего проекта по адресу ./platforms/android/cordova/lib/emulator.js.

Просто обновите следующую строку (для меня это была строка 205):

.spawn ('эмулятор', args, {stdio: 'наследовать', отсоединен: true})

в

.spawn ('эмулятор', args, {stdio: 'наследовать', отсоединен: true, cwd: process.env ['ANDROID_HOME'] + '/ tools'})

Это исправит проблему относительного пути, которую вы испытываете.

Кроме того, есть еще одно исправление, необходимое для версии 6.5.0 Cordova в строке 56. Просто опустите букву «s» во множественном числе слова « avds », чтобы сделать его « avd » в единственном числе.


Просто чтобы добавить это для других, читающих это: если вы только что установили SDK через brew cash, вам следует заменить ANDROID_HOME на ANDROID_SDK_ROOT (если вы также не настроили env ANDROID_HOME)
Lubricin

3

Я столкнулся с этой проблемой

  java.io.IOException: Cannot download 
 'https://dl.google.com/android/repository/emulator-windows-4266726.zip'

Я обновился до студии 3.0 в windows 10, мои эмуляторы перестали работать. Что я сделал для исправления,

Удалены предыдущие установочные папки студии Android, такие как 2.0 и 2.1, присутствующие под моим именем пользователя вместе с папкой .AndroidStudio3.0 (оставив ее нетронутой).

Удалил ранее установленные эмуляторы, которые так или иначе перестали работать.

Загрузил zip-файл эмулятора вручную по ссылке выше. Вставил его содержимое в папку эмулятора

       C:\Users\myusername\AppData\Local\Android\Sdk\emulator

Создал новый эмулятор и запустил его, Bingo! это работает!!


1
Это тот, который, наконец, помог мне, за исключением того, что я не скачивал по ссылке, а обновил эмулятор с помощью SDK Manager в Android Studio 3.0
yvesmancera

3

Чтобы устранить эту проблему, выполните следующие действия (Windows 10):

  1. Проверьте в Android студии, если вы установили эмулятор Android, если нет, установите его.

  2. Проверьте в Android studio, если вы установили Intel x86 Emulator Accelerator (установщик HAXM), если нет, установите его.

  3. В переменных среды => Системные переменные отредактируйте «Путь». Вы должны добавить эту строку для эмулятора: %ANDROID_HOME%\emulatorbefore %ANDROID_HOME%\toolsи %ANDROID_HOME%\platform-tools(Третий шаг был решением для меня.)


2

Для Mac

Если у вас есть эмуляторы, попробуйте этот шелл-код:

#!/bin/bash
cd /Users/***/Library/Android/sdk/tools/
avds=`emulator -list-avds`
echo "show All emulators"
i=0
for item in $avds
do
    echo [$i] $item
    let i+=1
done
read index
avds=($avds)
# echo ${avds[$index]}
emulator -avd ${avds[$index]}

*** это ваше имя пользователя


2

Моя андроид студия находится в операционной системе Windows. но большинство ответов на этой странице мне не подходят.

но я понимаю это простым способом.

В IDE студии Android откройте [Sdk manager], проверьте, скачали ли вы [Android Emulator] и [Android SDK tool]

Как их проверить?

[SDK Manager] -> [Внешний вид и поведение] -> [Настройка системы] -> [Android Sdk] -> Здесь есть вкладки и выберите вторую [Инструменты SDK]. затем проверьте [Android Emulator] и [Android SDK tool].

Надеюсь, это поможет вам.

Удачи!


2

Я вижу, что вам нужно только добавить ниже в путь, чтобы иметь возможность запускать эмулятор

C:\Users\Ram\AppData\Local\Android\Sdk\platform-tools
C:\Users\Ram\AppData\Local\Android\Sdk\emulator.

После установки Android Studio 3.0 и выше я вижу, что в нем C:\Users\Ram\AppData\Local\Android\Sdk\emulator emulator_folderесть те же файлы, что иC:\Users\Ram\AppData\Local\Android\Sdk\tools tools_folder

В папке инструментов отсутствуют некоторые файлы, поэтому удалите папку инструментов из пути.

Вы можете использовать следующие команды эмулятора для запуска эмулятора из командной строки:

emulator -list-avds

emulator @Pixel_2_XL_API_26 - Based on the avd that you have setup

emulator_commands


1

Установка эмулятора Android решит проблему, поскольку этот параметр по умолчанию не включен в студии Android. В Android Studio 3+ и выше вы не можете найти его в меню «Инструменты» -> «Android» -> «Sdk Manager» -> «Инструменты SDK» -> «Эмулятор Android», но оно находится в меню «Файл» -> «Настройки» -> «Внешний вид и поведение» -> «Настройки системы» -> Android SDK -> Инструменты SDK -> Эмулятор Android


1

Я только что решил эту проблему для сценария безголового эмулятора. Итак, если я проверил свою папку andrdoid_sdk, есть 2 исполняемых эмулятора. Вопрос сидит одна версия

${ANDROID_HOME}/emulator/emulator
version 29.3.4
no issue

а второй

${ANDROID_HOME}/tools/emulator
version 26.0.3
QT issue

поэтому убедитесь, что вы используете последнюю версию эмулятора, особенно если вам нужен безголовый эмулятор, как указано на: https://androidstudio.googleblog.com/2019/02/emulator-2818-canary.html



0

Вы также можете просто открыть Инструменты> AVD Manager из Android Studio и запустить эмулятор вручную.


Я думал , что ОП был об ухудшении через меню Android Studio. Для меня графический интерфейс работает, но я не могу заставить emulator -avd "Nexus_5X_API_27"работать командную строку .
MarkHu

0

В базовой ОС могут быть ошибки / обновления. Поэтому вместо обновления в .profile, /etc/environmentили .bashrcфайл в точку adbи emulatorт. Д. Поместите (скопируйте и вставьте) всю emulatorпапку в /usr/binкаталог. Этот / usr / bin по умолчанию указывается системой. Установить adbинструмент из терминала. Это должно все решить.

И / или обновите все переменные среды в /etc/bash.bashrcфайле. Обратите внимание: /etc/bash.bashrcfile - это то, что выполняется каждый раз, когда вы открываете терминал bash.


0

Если вы используете Docker-контейнер, на котором запущен образ Ubuntu x86, возможно, не удастся запустить эмулятор на основе x86 в образе Docker. Вы получите сообщение об "Qt library not found"ошибке или сообщение об "Please ensure KVM is properly installed and usable"ошибке (подробнее здесь ).

Альтернативой является использование эмулятора на базе ARM, который легче запускается, хотя и работает медленнее:

# Download an ARM emulator image
android-sdk/tools/bin/sdkmanager "system-images;android-24;default;armeabi-v7a"

# Create an ARM-based emulator AVD with 250 MB SD card
avdmanager create avd -n Android_7.0_API_24 -k "system-images;android-24;default;armeabi-v7a" -c 250M --force

# Check the image is properly created and available to run
android-sdk/emulator/emulator -list-avds

# Run the emulator
android-sdk/emulator/emulator -avd Android_7.0_API_24

Дополнительная информация: https://medium.com/@AndreSand/android-emulator-on-docker-container-f20c49b129ef


0

Решение, которое сработало для меня, которого я раньше здесь не видел, это ссылка android-sdk/emulator/emulatorнаandroid-sdk/tools/emulator .

Тупой? Genius? работает для меня.


Это не работает. У меня уже есть файл в указанном месте
Ashok Koyi

0

Я исправил это просто добавив $ ANDROID_SDK_ROOT / emulator в $ PATH.

Я не знаю, почему в Android SDK есть два исполняющих двоичных файла эмулятора. 1) в $ ANDROID_SDK_ROOT / tools 2) $ ANDROID_SDK_ROOT / эмулятор, но второй работает для меня.

Я использую fish shellдобавление строки ниже в ~ / .config / fish / config.fish.

set -x ANDROID_SDK_ROOT $HOME/Android/Sdk
set -x JAVA_HOME $HOME/android-studio/jre
set -x PATH $PATH $ANDROID_SDK_ROOT/emulator
set -x PATH $PATH $ANDROID_SDK_ROOT/tools
set -x PATH $PATH $ANDROID_SDK_ROOT/tools/bin
set -x PATH $PATH $ANDROID_SDK_ROOT/platform-tools

0

Мне удается решить эту ошибку. В моей системе переменная мне нужно установитьANDROID_HOME

системная переменная

Для моей переменной User мне нужны оба эти пути

C:\Users\tonyhudson\AppData\Local\Android\Sdk\platform-tools
C:\Users\tonyhudson\AppData\Local\Android\Sdk\emulator

Не забудьте удалить, C:\Users\tonyhudson\AppData\Local\Android\Sdk\toolsпотому что это приведет к ошибке

переменная пользователя


0

Когда вы установили только Android SDK, а не Android studio. Вам нужно узнать путь к эмулятору и выполнить его с полным путем. Например,

/ usr / local / share / android-sdk / tools / emulator @test

Это должно решить вашу проблему. По крайней мере, это то, что сработало для меня.



0

Я работаю над реагирующим носителем, и я столкнулся с этой проблемой, я не мог открыть Emulator из cmd, который действительно раздражал, потому что я должен был открыть его из Android Studio, что занимает очень много времени.

Итак, сначала проверьте, можете ли вы открыть эмулятор, запустив cmd в Android\Sdk\emulatorпапке или Android\Sdk\toolsработает ли он в любой из этих папок, тогда это решение для вас! 😀

в моем случае запуск cmd в обеих этих папках работал, но если открыть cmd в любой другой папке, мой эмулятор не будет работать и через эту ошибку:

[14684]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ..\emulator\lib64\qt\lib
Could not launch 'C:\Users\Shehr\AppData\Local\..\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe': No such file or directory

Итак, как я решил это, не теряя времени:

  1. сначала скопируйте путь к папке, где эмулятор работает в cmd, в моем случае это был Android\Sdk\emulator&&, Android\Sdk\toolsпоэтому мы копируем любой из этих путей!
  2. Отредактируйте переменные системной среды и добавьте новую переменную, запишите свой скопированный путь в значение и назовите его «ЭМУЛЯТОР» (или как вы хотите назвать переменную).

Теперь просто запустите команду в cmd в любой папке, подобной этой, %EMULATOR% -avd DEVICE_NAMEчтобы мы назвали нашу переменную, EMULATORпоэтому мы будем использовать %EMULATOR%вместо emulator! Вот как cmd будет нацелен на правильный файл emulator.exe, и он будет работать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.