无法在模拟器中启动AVD:找不到QT库


132

我是Android Studio的新手,使用模拟器时遇到问题。当我尝试运行时,它总是崩溃说:

“无法在模拟器中启动AVD” [6816]:错误:./ android / qt / qt_setup.cpp:28:在C:\ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator \ lib64 \ qt中找不到Qt库\ lib

无法启动'C:\ Users \ Jay \ AppData \ Local \ Android \ Sdk \ emulator / qemu / windows-x86_64 / qemu-system-i386.exe':没有这样的文件或目录

我已经从BIOS设置中启用了VT-x,但出现了问题。我已经搜索了很多,找不到答案。任何帮助都感激不尽。谁能给我解决方案?

错误的屏幕截图 日志快照


看我的答案。效果很好。
Uddhav Gautam

Answers:


157

这似乎是与最新更新有关的问题。临时解决方案是/path/to/android-sdk/tools从命令行目录中启动模拟器。

请参阅https://code.google.com/p/android/issues/detail?id=235461来解决此问题。


6
我正在从Android / sdk / tools执行模拟器,但仍然收到QT错误。
贡萨洛(Gonzalo)

3
我遇到了同样的问题,并且此解决方案对我有效。
贡塔德

2
截至昨天的最新更新。从<Android SDK> / tools目录运行对我来说很有效,但是我的路径中也有/ tools和/ platform-tools。他们应该解决此问题。
肖恩·艾特肯

13
这个问题的评论#25为我解决了这个问题
Gregriggins17年

1
为我工作,但我还必须额外使用-use-system-libs一个emulator位于tools目录中的参数。
Rany Albeg Wein

105

所有其他答案均对我不起作用,因为未随标准安装的Android Studio安装“ Android模拟器”。确保已安装它,然后根据需要尝试其他答案。在此处输入图片说明


2
安装“ Android模拟器”也为我修复了该问题。之后,我能够再次启动仿真器,但是遇到了HAXM错误“ unknown hax vcpu return 1”。只需重启我的机器就可以解决所有问题。(请参阅:stackoverflow.com/a/41867405/2350644
user2350644

2
从Android Studio内部安装模拟器对我也很有效。现在,我也可以从命令行运行Emulator。
abhinavgoyal02

3
真的谢谢您,浪费了3个小时解决了我的问题:(
Hossam Ghareeb

1
我有在Mac上启动模拟器的问题。它曾经在启动后崩溃而没有任何消息。你的提示帮助了我。
Rostyslav Roshak '17年

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. Costa

7
在zsh中使用whence -p代替which。还要cd ... && ...在圆括号中放入括号以执行它们,以避免在当前Shell中更改目录。
mixel

11
我可以确认它在@mixel的修改下可在linux和zsh上运行:function emulator { ( cd "$(dirname "$(whence -p emulator)")" && ./emulator "$@"; ) }
Andy Jones

63

我已经安装了最新的Android Emulator 26.1.2,它已解决了此问题。

顺便说一句,如果在您的PATH中您同时具有以下两种情况:

  • C:\AndroidSDK\tools

  • C:\AndroidSDK\emulator

emulator命令将尝试使用tools文件夹中的emulator.exe,该文件夹不起作用。

要在PATH中解决此问题,您需要C:\AndroidSDK\emulator 在tools目录前的行中移动,这样,将首先在emulator文件夹内搜索emulator可执行文件,并优先于tools文件夹中的那个可执行文件

MacOS的: 如果你有一个苹果,你可以移动 ~/Library/Android/sdk/emulator之前 ~/Library/Android/sdk/tools


8
加入emulator目录的路径帮助我
公园。

14
在〜/ Library / Android / sdk / tools修复之前,在〜/ Library / Android / sdk / tools上添加〜/ Library / Android / sdk / emulator
JacobWallström17年

3
是的,使用mac OS,我在PATH中将仿真器放在了其他仿真器的前面,并且可以正常工作
Aaron Gong

1
谢谢- 在Linux上对我有用的路径emulator之前添加tools
Vanessa Deagan

谢谢,我添加了环境变量的路径并对其进行了排序。Win10的。同样如上所述,在“工具”之前输入仿真器。
弗朗索瓦·穆勒

20

一个简单的解决方案是将此别名添加到您的别名.bashrc .profile或等效项中

alias emu="$ANDROID_HOME/tools/emulator"

然后source .bashrc.profile或者只是简单地打开一个新终端

最终运行模拟器将非常简单 emu -avd name


2
+1为别名,这为我解决了。我没有定义ANDROID_HOME,所以只替换了普通路径。不知道为什么大多数人都喜欢它,而我却没有...我在Mac上。
塔霍金刚狼

12

Zsh用户可以添加:

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

.zshrc(或.zshenv)。

通过获取更改的文件将更改加载到当前外壳程序:

source ~/.zshrc

现在您可以使用 emulator在zsh中命令。

感谢J. Costa的回答bash


10

我昨天在Macbook上安装了最新的Android Studio时遇到了同样的问题。

尽管sdk / tools文件夹中提供了仿真器二进制文件,但未安装Android仿真器软件包。在Android Studio->首选项->系统设置-> Android SDK中选择Android仿真器,下载并安装仿真器包。

安装模拟器后,我就可以启动模拟器了。


完成此操作后,我必须重新启动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并使用LATEST emulator包(二进制文件)。没有这些,您仍然会看到烦人的QT错误。

然后,确保已安装所需的SDK软件包以启动仿真器至关重要。通过安装特定的仿真器映像时sdkmanager,它不会检查或要求您安装必需的依赖项。每当您看到错误抱怨时ANDROID_SDK_ROOT,例如PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOTPANIC: 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
kemuri

我只是发现emulator现在就坐在那里,sdk/emulator一个来自工具的工具会导致该错误。
kemuri

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工具-> SDK管理器执行此操作。希望这可以帮助


从SDK Manager重新安装模拟器后,修复了Qt错误,但最终我又遇到了HAX的另一个问题。使用Mac。
Gennon

通过退出我机器上的Docker来解决HAX问题。必须从tools目录启动仿真器。否则我会再次遇到Qt错误。
Gennon

4

我已经在Windows 10 x64上安装了Android Studio 2.3.3(今天是2017年8月1日)

同样的问题。

  • 我已经从Android Studio->工具-> Android-> Sdk Manager-> SDK工具-> Android Emulator(版本26.1.2)手动安装了模拟器

  • 安装后...同样的问题

  • 我已经将从仿真器文件夹的路径添加到工具路径之前的环境变量中(如上述一个答案),但是仍然存在相同的问题。
  • 然后我从工具文件夹中删除了emulator.exe和emulator-check.exe,这解决了mi问题


3

此问题似乎在Cordova 7.0.X版中已解决。

如果您使用的是Cordova 6.5.0版,则可以轻松修复它。

问题的根源是位于项目目录根目录下的emulator.js文件,该文件位于./platforms/android/cordova/lib/emulator.js

只需更新以下行(对我来说是205行):

.spawn('emulator',args,{stdio:'inherit',detached:true})

.spawn('emulator',args,{stdio:'inherit',detached:true,cwd:process.env ['ANDROID_HOME'] +'/ tools'})

这将解决您遇到的相对路径问题。

另外,第56行的Cordova 6.5.0版还需要第二个修复程序。只需从单词“ avds ”中删除字母“ s”,以使其成为“ avd ”单数。


只是将其添加到其他人,这是:如果您是通过Brew Cash安装SDK的,则应将ANDROID_HOME替换为ANDROID_SDK_ROOT(除非您也已设置环境ANDROID_HOME)
Lubricin

3

我正面临这个问题

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

我在Windows 10中更新到Studio 3.0,仿真器停止工作。为修复该问题,

删除了Android Studio的先前安装文件夹(如2.0和2.1),位于我的用户名和.AndroidStudio3.0文件夹下(保持不变)。

删除了以前安装的模拟器,该模拟器以任何方式停止工作。

从上面的链接手动下载了仿真器zip文件。将其内容粘贴到的仿真器文件夹中

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

创建了一个新的模拟器,并启动了Bingo!这是工作!!


1
这是最后为我成功的技巧,只是我没有从链接下载,而是使用Android Studio 3.0中的SDK Manager更新了模拟器
yvesmancera

3

请按照以下步骤解决该问题(Windows 10):

  1. 在Android Studio中检查是否安装了Android模拟器,如果没有,请安装它。

  2. 在Android Studio中检查是否安装了Intel x86 Emulator Accelerator(HAXM安装程序),如果没有安装,请进行安装。

  3. 在环境变量=>系统变量中,编辑“路径”。您需要为仿真器添加以下行:%ANDROID_HOME%\emulator在之前%ANDROID_HOME%\tools和之前%ANDROID_HOME%\platform-tools(第三步对我来说是一个解决方案。)


2

对于Mac

如果有创建模拟器,请尝试以下shell代码:

#!/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

我的Android Studio在Windows操作系统中。但是此页面上的大多数答案对我不起作用。

但我想起来很简单。

在您的Android Studio IDE中,打开[SDK管理器],检查是否已下载[Android模拟器]和[Android SDK工具]

如何检查?

[SDK管理器]-> [外观和行为]-> [系统设置]-> [Android Sdk]->这里有选项卡,然后选择第二个[SDK工具]。然后检查[Android模拟器]和[Android SDK工具]。

希望它能对您有所帮助。

祝好运!


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 studio默认未启用此设置。在android studio 3+及更高版本中,您无法在工具-> Android-> Sdk Manager-> SDK工具-> Android Emulator下找到它,但在文件->设置->外观和行为->系统设置->下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

您也可以只从Android Studio打开“工具”>“ AVD管理器”,然后手动启动模拟器。


我认为OP 关于通过Android Studio中的菜单失败。对我来说,GUI可以工作,但是我无法使命令行emulator -avd "Nexus_5X_API_27"工作。
MarkHu '19

0

底层操作系统中可能存在错误/更新。所以,与其在更新.profile/etc/environment.bashrc文件,以点adbemulator等等,放(复制和粘贴),所有的emulator内部文件夹/usr/bin目录。默认情况下,该/ usr / bin由系统指向。adb从终端安装工具。这应该解决所有问题。

和/或,更新/etc/bash.bashrc文件中的所有环境变量。注意:/etc/bash.bashrcfile是每次打开bash终端时执行的内容。


0

如果您使用的是运行Ubuntu x86映像的Docker容器,则可能无法在Docker映像中运行基于x86的模拟器。您将收到"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

哑?天才?工作形式。


这是行不通的。我已经将文件保存在指定的位置
Ashok

0

我只是通过在$ PATH中添加$ ANDROID_SDK_ROOT / emulator来修复它。

我不知道为什么Android SDK中有两个模拟器exec二进制文件。1)在$ ANDROID_SDK_ROOT / tools中2)$ ANDROID_SDK_ROOT / emulator,但是第二个对我有用。

我正在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

系统变量

对于我的用户变量,我需要这两个路径

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

我正在开发本机响应程序,并且遇到了这个问题,我无法从cmd中打开模拟器,这真是令人讨厌,因为我不得不从Android Studio中打开它,这非常耗时。

因此,首先检查您是否可以通过在Android\Sdk\emulator文件夹中运行cmd来打开仿真器,或者Android\Sdk\tools是否可以在其中任何一个文件夹中运行cmd,那么此解决方案适合您!😀

在我的情况下,在这两个文件夹中运行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. 编辑系统环境变量并添加新变量,将复制的路径写入值中,并将其命名为“ EMULATOR”(或任何您想命名的变量)。

现在,只要在cmd这样的任何文件夹中的cmd中运行命令,%EMULATOR% -avd DEVICE_NAME就可以命名为变量,EMULATOR因此我们将使用%EMULATOR%而不是emulator!这就是cmd定位到正确的emulator.exe文件的方式,它将起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.