安卓模拟器只显示黑屏,adb设备显示“离线”

251
我正在尝试在Android上开始开发,但遇到了问题。当我尝试通过命令emulator @A2启动模拟器时,会出现一个模拟器屏幕。但即使等待2-3小时,它仍然显示黑屏,没有Android主屏幕或Android标志,而且最初“adb devices”显示模拟器离线,2-3分钟后连接设备的列表变为空白。我已经在网络上搜索并尝试了所有包括杀死和重新启动adb、在没有空格的目录中安装java/android等步骤,但都没有用。我的Jdk和Android安装在以下文件夹中:C:\Java32BitInstallation、C:\AndroidSdkInstallation。我下载/安装了以下内容:Android SDK工具,版本13;Android SDK平台工具,版本10;SDK平台Android 4.0.3,API 15,版本1;jdk jdk-7u3-windows-i586。在我的路径变量中,我添加了*C:\AndroidSdkInstallation\android-sdk\platform-tools;C:\AndroidSdkInstallation\android-sdk\tools;C:\Java32BitInstallation;C:\Java32BitInstallation\bin*。此外,在某个地方读过后,我添加了JAVA_HOME变量,并将其值设置为C:\Java32BitInstallation\,但还是没有用。我在系统上安装了IntelliJ和Eclipse,但由于启动模拟器时未使用它们之一,所以我不认为有什么问题。我已经尝试了10-12天,仍无法启动模拟器,更别说编写第一个“Hello world”程序了。附加说明:我的系统是一台Windows 7(64位)机器。之前我安装了64位版本的JDK,但当时问题依然存在。现在在网上搜索后,我卸载了它并安装了32位版本的Java。但是,还是没有用。不过,这个32位版本的Java(jdk 7更新3版)在安装JDK时会先安装JRE,然后再安装JRE 7。所以现在我有两个文件夹:jre和jre7在C:\Java32BitInstallation目录下。这可能与我的模拟器无法启动有关。我需要指定额外的环境变量或修改现有的环境变量吗?顺便说一句,我有提到Logcat什么也没显示。

4
我不知道你是否解决了这个问题。最近我也遇到了相同的问题。尝试使用emulator -debug-init -logcat '*:v'运行模拟器,这可能会帮助你找到根本原因。我的问题是ServiceManager故障。似乎我已经删除了一些ServiceManager文件。 - Markus
1
在运行模拟器上的程序时,我遇到了一个黑屏的问题。尽管你的问题听起来像是AVD设置的问题,但我想告诉其他人,内存泄漏也可能导致黑屏。直到我清除AVD、重新启动logcat并重新运行模拟器之前,我的logcat没有显示垃圾收集器GC_MESSAGE。希望这能帮助到别人,因为我刚刚花了很长时间删除和重新创建AVDs,而问题其实不在那里.. :-/ - cjayem13
1
@Markus,“emulator”命令在哪里使用?不是在platform-tools中。 - Shirish Herwade
1
@FabioR:在Mac上,您可以按Command + Option + Escape键,选择“qemu-system-i386”,然后点击强制退出。同样的方法也适用于其他操作系统。 - ccpizza
@ccpizza 我试过了,但只有重新启动我的 Mac 才行...也许是硬件相关的问题,不管怎样,谢谢。 - FabioR
显示剩余5条评论
36个回答

140

更新于2018年7月25日:

最新的Android Studio版本不再具有此选项。如果问题仍然存在,请尝试在验证配置对话框中在“模拟性能”下拉菜单中切换值(如果可用),或者参考配置模拟器图形渲染和硬件加速

更新于2014年2月26日:

开启图形加速章节中有两个提示。

注意:从SDK工具修订版17开始,模拟器的图形加速功能是实验性的;使用此功能时要注意不兼容性和错误。

启动AVD管理器并创建一个Target值为Android 4.0.3(API Level 15)的新AVD,修订版为3或更高版本。

因此,Android 4.0.3(API Level 15)似乎是图形加速的最低要求。

原始答案:

我在最新的Android SDK中遇到了同样的问题。

我只是在虚拟设备的设置中取消了“使用主机GPU”复选框,然后它又开始正常工作了。

“使用主机GPU”对我只有在Android 4.2作为“目标”时才有效。


3
好的,我明白了。我需要更新SDK管理器中的一些内容。不幸的是,我无法准确告诉你哪一个更新是正确的,但我猜想它与处理器模拟器有关。 - muetzenflo
91
对我来说恰恰相反 - 我必须打开“HOST GPU”才能让它工作。唯一的问题是我无法在那种模式下截屏 :/ - Elad Avron
3
在Ubuntu 12.04和Android SDK 19中,我的主机GPU需要开启。 - Johan Bjäreholt
1
找不到这个选项 - 使用Android Studio 2.3.3 - Dean P
2
在Android Studio 3.4(Linux,Windows 10)中打开gpu模式后,Android 4.0.3模拟器可以正常工作。您无法更改“验证配置”对话框中的选项。它会强制关闭gpu模式,无论您在“模拟性能”中选择了什么。因此,请直接更改config.ini文件。hw.gpu.enabled=yes和hw.gpu.mode=on。config文件通常位于/user文件夹/.android/avd/emulator name.avd/中。 - Sungsuh Park
显示剩余8条评论

135

我最近在模拟器上遇到了相同的问题,Nexus 5 (Android O)。我去了Android虚拟设备管理器并清除了用户数据,问题得以解决。

Android虚拟设备管理器


10
对我很有用,谢谢。 - Sadda Hussain
1
在2020年通过命令行在Windows上运行对我很有效。 - ViktorMS
3
这是最常见的解决方案。应该被接受为答案。 - Dror Bar
1
这对我在Linux上使用Android Studio 4.1.12也起作用了。我感到困惑的是,这发生了却没有在任何地方注册错误。 - Jette
我也试过了,非常感谢。 - Hari
显示剩余3条评论

83

我在使用模拟器(Nexus7和10)时遇到了问题,而手机大小的模拟器效果很好。使用平板电脑时会出现无法显示黑屏,持续数小时。帮助我的方法实际上是与大多数人推荐的相反:勾选“使用主机GPU”复选框,并将目标设置为最高Android版本(在本文撰写时为4.4.2),这样7英寸和10英寸的模拟器就能正常工作!


17
这对我也起作用了。确保选中了使用主机 GPU 并将目标设置为 Android 4.4.2。 - R Brill
1
谢谢。我勾选了选项,4.2.2 开始工作了!我相信其他人也提到过这一点。Java 真是个奇怪的世界!! - JQ.
正是我所需要的。谢谢! - TheXenocide
无论是否勾选“使用主机GPU”,API级别14都无法正常工作。勾选“使用主机GPU”后,API级别17可以正常工作。 - vishvAs vAsuki
这对我也起作用了,我使用的是 MacBook early 2015,没有任何独立显卡。 - Simon Stender Boisen
在MacBookPro10,1上也对我起作用了。 - ocroquette

68

你尝试过按电源键吗 :) ...对我来说真的有效。实际上,在关闭模拟器之前,模拟器会保存设备状态,因此如果在最后一次运行时您将设备关闭并关闭模拟器,则在下一次运行时,它将加载先前的状态并显示关闭的手机,也就是空白屏幕。虽然可能有许多其他原因导致此问题。

输入图像描述


6
前面的回答中应该提到这一点。第一次使用Android Studio时,我害怕点击这个按钮,因为我认为它会关闭手机,并且重新开机需要花费很长时间。是的,黑屏意味着手机已经关闭,你需要使用电源键唤醒它,就像在真实设备中一样。 - kojot
1
这个真的帮了我很多,省去了很多麻烦和时间,非常感谢。当我想关闭模拟器时,我不小心按了这个按钮,在下次运行我的应用程序时出现黑屏问题时,没有想到它会是解决问题的关键。 - Meenohara
说起来,我想这实际上一直是我的问题。谢谢! - James
谢谢这个。只需轻触电源按钮或使用(ctrl + p)即可打开它。 - Rishal
我确实尝试过那个,想着这可能是原因,但没有帮助。 - Kira Resari
这个救了我哈哈。之前我通过按那个按钮关闭模拟器,然后我因为它无法启动而发疯了,哈哈。谢谢! - Vikingslord

39

在启动选项中勾选"擦除用户数据"对我来说解决了问题。

前往Android虚拟设备管理器->选择您的设备->启动->勾选"擦除用户数据"->启动


1
这对我在通过Team Viewer运行模拟器的Mac上有效。 在Android Studio 2.0中,此选项出现在编辑按钮旁边的向下箭头中->“清除数据” - behelit
非常出色。如果从源代码构建模拟器(在我的情况下是android pie aosp_x86_64-userdebug),每当执行根目录make命令时,模拟器需要使用-wipe-data参数启动才能正确引导。 - yc2986

23

Mac用户:如果您使用的是Yosemite版本的较旧的Mac(例如2009年末),则无法在64位架构下使用HAXM。根据HAXM发布说明:

HAXM驱动程序不支持在基于Core微架构(Core、Core2 Duo等)的Intel系统上模拟64位系统映像。所有基于Nehalem及更高版本的系统都受支持。(Corei3、Core i5和Core i7机器)。

当我发现这个引用时,我花了一整天来解决这个问题。唯一有效的方法是在您的AVD中使用最新操作系统的非x86版本(例如Lollipop Android 5.0.1 armeabi-v7a)。


我遇到了这个问题,有解决方法吗? - Mahmoud Niypoo

17

我是如何解决这个问题的...打开AVD管理器,点击下拉箭头:

选择 >> 清除数据,然后你可以选择 >> 冷启动现在..

对我有效 在此输入图片描述


10

突然间遇到了这个问题。Android Studio 占用了 100% 的 CPU,而在 Expo 中我遇到了以下错误:

Couldn't start project on Android: Error running adb: This computer is not authorized to debug the device. Please follow the instructions here to enable USB debugging: https://developer.android.com/studio/run/device.html#developer-device-options. If you are using Genymotion go to Settings -> ADB, select "Use custom Android SDK tools", and point it at your Android SDK directory.

我遇到了类似的问题,通过冷启动解决了。就像boltup_im_coding的回答一样,你也可以这样进行冷启动,即使它已经运行(出现黑屏)。

enter image description here


如果模拟器正在运行,请停止它,然后单击屏幕截图中显示的“擦除数据”选项,然后重新启动模拟器即可完美解决您的问题。谢谢。 - Kamlesh

9

以下是我解决问题的步骤:

我使用以下命令运行了模拟器:

sudo /home/code/Android/Sdk/tools/emulator -avd Nexus_S_API_21 -netspeed full -netdelay none -debug-init -logcat '*:v'

并在输出中收到了以下内容:
NAND: could not write file /tmp/android-code/TMP7.tmp, No space left on device. (similar error, could not reproduce it)

所以,我刚刚在Ubuntu的/home目录(对于Windows来说是C:驱动器)中释放了一些磁盘空间,然后它顺利地启动了。


我使用了命令:sudo /home/code/Android/Sdk/tools/emulator -avd Nexus_S_API_21 -netspeed full -netdelay none -debug-init -logcat '*:v' 来启动我的 AVD 并查看日志,发现设备无法访问笔记本相机,所以我编辑了配置以禁用相机。之后,一切都正常工作了! - Mo Zaatar

9
在“Android设备管理器”中进行出厂设置
在较新版本的Android Studio中,这被称为“擦除数据”,并且它位于虚拟设备管理器中设备的右键菜单中。

这对我有用,谢谢。在VS 2019中,转到Android设备管理器,右键单击并选择“恢复出厂设置”。我遇到了黑屏模拟器的问题,这个方法解决了我的问题。 - Evan

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