Android Studio中的模拟器无法启动

136

我认为这是Project Structure中SDK引用的问题,但当我点击运行并选择启动模拟器时,没有任何东西出现。


1
也许你在应用程序启动时遇到了问题,也许你的应用程序最低SDK版本高于模拟器SDK版本,也许是你电脑出了问题。有很多原因可能导致这个问题... 没有更多信息我们只能猜测。 - Ilya Gazman
我有一个“旧”的Android SDK,可以在Eclipse中正常启动模拟器。我使用了1.6 JDK,但奇怪的是,在AS中我没有收到任何错误消息。 - Alessandro Mattiuzzi
我在管理器中创建了一个新的虚拟设备,采用 Google Api 2.2,并且现在正在启动.....抱歉。 - Alessandro Mattiuzzi
6
我曾经遇到相似的问题,不是因为模拟器中SDK版本的原因,而是由于内存RAM的数量。在创建映像时会有一个警告,提示在Windows上模拟超过768MB可能会出现问题,我解决了这个问题(我原本试图创建1GB RAM的映像),现在使用768MB时它可以正常运行。 - VoidMain
我在这个帖子中找到了答案:https://dev59.com/FV8d5IYBdhLWcg3w3FVk - Terabyte
我曾经遇到过同样的问题,原因是我的电脑空间不足,所以我删除了一些文件和临时文件夹,现在我有5GB的可用空间,它又可以完美地工作了。祝你好运。 - Iris Tako
53个回答

74

我曾经遇到同样的问题。我只是创建了一个带有768 MB RAM的AVD,并且它运行得很好!

更新:2022年11月
这个答案几乎是10年前的,很可能在当前版本的Android Studio上不起作用。


2
嘿!不错,它起作用了。有人知道原因吗?这个问题只存在于Android Studio中吗? - Shail Adi
2
我也遇到了Eclipse的这个问题...所以看起来可能与Windows上的Android SDK有关。(未经验证 - 只是猜测)。 - Timothy Lee Russell
24
对于像我这样的新手,操作路径是:工具 > Android > AVD 管理器。在那里,在创建设备时您会发现“Android 虚拟设备 (AVD)”中的设置,点击“显示高级设置”。http://tinypic.com/r/ehhpms/8 顺便说一下,我试过768 MB RAM,但没有成功。尝试使用emulator.exe -netdelay none -netspeed full -avd Nexus_S_API_21_2从CMD运行模拟器会给出错误提示:HAX kernel module is not installed! (x86)。可能的解决方案:https://dev59.com/FV8d5IYBdhLWcg3w3FVk - Avatar
1
这对我有用。Windows 7 - Android Studio 2.3.1。 - Uğur Gümüşhan
1
这个解决方案对我没用,但是手动升级x86_64映像的HAXM有效。更多信息请参见我的答案 https://dev59.com/P2Qn5IYBdhLWcg3wmIAs#46312480 - Zack Morris
显示剩余3条评论

48

我遇到了类似的问题,即Android模拟器无法打开。

您需要找出导致这个问题的原因。您可以从命令行运行模拟器。为此,您可以从“Run”或“AVD” Android Studio控制台复制和粘贴您的命令行。

"{path}\android-sdk\tools\emulator.exe -avd Default_Nexus_5 -netspeed full -netdelay none"

当您从命令行终端启动它时,它会给您一个带有错误的消息。在我的情况下,这对于发现问题非常有用:

..\android-sdk\tools>emulator: ERROR: x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: HAX kernel module is not installed!

  • 我需要使用工具来激活GPU加速以在我的计算机上启用它。我通过SDK Manager安装了HAXM工具来解决它。

  • 我还遇到了另一个问题...例如,我为我的虚拟设备分配了错误的皮肤路径URL...要解决这个问题,我已经使用有效的皮肤配置我的虚拟设备:'{path}\android-sdk\platforms\android-{number}\skins{SCREEN_SIZE}'

现在它正常打开了。

更新日期:2019年8月8日:

对于较新版本的Android SDK,模拟器路径应该是:

"{path}\android-sdk\emulator\emulator.exe"

参考资料(感谢@CoolMind)


1
我在命令行上尝试了一下,但是只得到了“X Error of failed request: BadRequest (invalid request code or no such operation)”这个错误信息。这个解释让我感到困惑和愤怒。你觉得这有道理吗? - john_science
1
你有ATI显卡吗?如果你搜索错误信息,你可能会找到一些遇到相同错误的人。在我的情况下,我的错误不同,我通过在我的电脑BIOS中激活GPU加速和安装haxm工具来解决它。你的问题似乎是Android模拟器和你的显卡驱动之间的类似通信问题。 - Ariel Carrera
1
感谢命令行。它帮助我看到了“PANIC:Broken AVD system path. Check your ANDROID_SDK_ROOT value [D:\Android]!”请注意,新版本的模拟器需要Android\sdk\emulator\emulator路径,而不是tools\emulator,请参见https://dev59.com/OFUK5IYBdhLWcg3wlQyu#51627009。 - CoolMind
这帮助我找到了问题。 - Trupti Nasit
“emulator.exe”一词不被识别为cmdlet的名称,我是从cmd.exe中运行的,但没有显示任何错误消息。很不幸。 - MwBakker
显示剩余2条评论

45

在我的情况下,Android设备在启动时会卡住。我通过使用Android虚拟设备管理器(工具-> AVD管理器)擦除用户数据并强制进行冷重启来解决了这个问题。

输入图像描述


当我更改网络连接时,遇到了同样的问题。 AVD从那时起就无法启动。这个解决方案对我有用 :) - KarolR
为什么会发生这种情况?我添加了一些图标资产,我认为这是导致它的原因。 - Dazzle
对我没有用,但是删除并重新创建设备就解决了问题。 - DoruChidean

25

“等待目标设备上线…”似乎是一个通用的消息,当模拟器无法正确启动时,它总是会出现。那是什么原因呢?正如你所看到的,可能有许多原因。

我认为找到模拟器的具体错误的最好方法是在终端中启动它。所以:

1- 打开终端并进入此文件夹:~/Android/Sdk/tools

2- 使用以下命令启动模拟器:

./emulator -avd EMULATOR_NAME -netspeed full -netdelay none

你可以使用以下命令来查看你(之前在 AVD 管理器中创建的)模拟器的名称:

emulator -list-avds

./emulator -list-avds

如果一切正常,程序不会启动,并在终端中写入具体错误信息。
在我的情况下,应用程序提示存在加载图形驱动程序的问题(“libGL error: unable to load driver: r600_dri.so”)。如此处所述,似乎Google与Android Studio打包了一个旧版本的库,当模拟器尝试使用我的图形卡时,它会失败。
解决方案?非常简单:使用系统库而不是Android Studio打包的库。怎么做?在命令的末尾添加“-use-system-libs”。所以:
./emulator -avd EMULATOR_NAME -netspeed full -netdelay none -use-system-libs

终极解决方案是为您的用户/系统设置 ANDROID_EMULATOR_USE_SYSTEM_LIBS 环境变量为 1。通过这种改变,在 Android Studio 中运行仿真器时,它也会加载系统库。
PS 1 - 我发现设置环境变量最简单的方法是修改启动 Android Studio 的脚本(对我来说是 /opt/android-studio/bin/studio.sh),并在开头添加以下内容:
export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

PS 2 - 我使用Debian Jessie和Android Studio 2.2.3。我的图形卡是Sapphire的ATI Radeon HD 6850。

更新:2017年12月,我在Debian Stretch和Android Studio 3.0.1上遇到了同样的问题(同一款显卡)。同样的解决方案对我有用。


1
这个答案对我有用。只是需要注意的是模拟器现在位于 ~/Android/Sdk/emulator - LordParsley

11

1) 打开 SDK Manager 并下载 Intel x86 Emulator Accelerator (HAXM 安装程序),如果您没有安装。

2) 现在进入您的 SDK 目录(一般为 C:\users\username\AppData\Local\Android\sdk)。在该目录下,转到 extra > intel > Hardware_Accelerated_Execution_Manager 并运行名为 "intelhaxm-android.exe" 的文件。

如果出现像 "Intel virtualization technology (vt,vt-x) is not enabled" 这样的错误,请进入您的 BIOS 设置并启用 Hardware Virtualization

3) 重新启动 Android Studio,然后再次尝试启动 AVD。

可能需要一两分钟才会显示模拟器窗口。


2
在SDK管理器中,在x86模拟器加速器(HAXM安装程序)旁边的状态列中,它显示为“与Windows不兼容 :-(”。 - Darkloki
运行“intelhaxm-android.exe”文件后,只有删除选项可用。这是预期的行为吗? - Tilak Dewangan
1
@Abhishek Balani,你的解决方案对我很有用,非常感谢你。经过一天的尝试、安装/卸载,我发现按照你的步骤,我安装了一个旧版本的Intel x86模拟器加速器6.x,而最新版本是7.x。所以我继续安装了7.x,并重新启动了Android Studio。此外,我还不得不在任务管理器中结束qemu-system-x86_64.exe来杀死模拟器实例,因为没有模拟器显示,但它们仍在运行。如果模拟器没有显示出来,则在我的情况下仍然在运行,这是由于旧版本的加速器。 - Sunil

8

在Ubuntu中,我遇到了同样的问题。我通过将文件/dev/kvm的权限更改为777来解决它:

sudo chmod 777 /dev/kvm

7

如果您是Android Studio的新手,需要按照几个基本步骤来配置模拟器。

  1. 确保您已安装适当的SDK
  2. 确保您在BIOS中启用了Intel HAXM和虚拟化选项
  3. 正确配置模拟器,下载Intel X86 Atom系统映像以获得更好的性能。

6

这甚至可以在已安装的情况下帮助解决问题。对我来说,通过取消勾选->应用(卸载),再次勾选->应用(安装)即可解决我的问题:D - snap

4

我在 Mac OS X 10.12.6 上使用 Android Studio 2.3.3 遇到了同样的问题,问题是由于 Android Studio 使用旧版 HAXM(应该为 6.2.1,而不是 6.0.3)引起的:

$ kextstat | grep intel
  148    0 0xffffff7f8342c000 0x14000    0x14000    com.intel.kext.intelhaxm (6.0.3) 50449AFC-F7C6-38A0-B820-233E8A050FD6 <7 5 4 3 1>

按照说明从Android Studio内部删除和重新安装HAXM无效:https://software.intel.com/en-us/android/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-mac-os-x

相反,手动下载HAXM安装程序,如果该链接过期,可以在https://software.intel.com/en-us/android/tools下找到Intel® Hardware Accelerated Execution Manager (Intel® HAXM)

运行安装程序后,它现在显示当前版本的HAXM已安装:

$ kextstat | grep intel
  169    0 0xffffff7f83472000 0x1d000    0x1d000    com.intel.kext.intelhaxm (6.2.1) 7B6ABC56-699C-3449-A0EC-BEB36C154E3C <7 5 4 3 1>

手动升级HAXM后,我能够启动x86_64模拟器。


旧的答案,也许可以替代(请注意,这对于x86_64映像对我没有用):

创建一个新设备:

工具->Android->AVD管理器

+ 创建虚拟设备

平板电脑 -> Nexus 7 -> 下一步

推荐选项卡应该被突出显示。

即使我已经安装了API Level 25 SDK,它显示:

Nougat 下载 25 x86 Android 7.1.1(Google API)

所以我点击了下载链接,这似乎修复了API Level 25 SDK。 我完成了我的新设备的创建,并且它运行得很好。

不幸的是,我已经删除了我的旧设备,所以如果这适用于其他人,请在此处留下评论,让我们知道您的原始设备之后是否有效,谢谢!


4
在Android Studio 2.3.3中,我成功地将我的AVD启动并运行,方法是将“Emulated Performance”部分的“Graphics”从“Automatic”更改为“Software-GLES 2.0”:enter image description here。我在遵循 https://dev59.com/P2Qn5IYBdhLWcg3wmIAs#44931679 的建议后得出这个结论。
$ ./emulator -avd Nexus_4_API_21 -use-system-libs

这导致了:
emulator: ERROR: Could not initialize OpenglES emulation, use '-gpu off' to disable it.

当我这样做时:

./emulator -avd Nexus_4_API_21 -use-system-libs -gpu off

仿真器随后启动。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接