Android 模拟器只显示黑屏和 adb 设备显示“设备离线”

Posted

技术标签:

【中文标题】Android 模拟器只显示黑屏和 adb 设备显示“设备离线”【英文标题】:Android emulator shows nothing except black screen and adb devices shows "device offline" 【发布时间】:2012-04-18 20:06:06 【问题描述】:

我只是想在 android 中开始开发。 所以,问题是当我尝试通过发出命令 emulator @A2 来启动模拟器时,屏幕上会出现一个模拟器。但即使等待了 2-3 小时,它所显示的只是黑屏。甚至没有 android 主屏幕或 android 徽标。只是黑屏。虽然最初“adb devices”将模拟器显示为离线。2-3 分钟后,连接的设备列表变为空白。

我在网上搜索并尝试了那里提到的所有步骤,例如杀死并重新启动 adb,将 java/android 安装在没有空格的目录中,但无济于事。

我的 Jdk 和 Android 安装在以下文件夹中:

C:\Java32BitInstallation C:\AndroidSdk安装 这是我为它下载/安装的东西的列表:

    Android SDK 工具,修订版 13 Android SDK 平台工具,修订版 10 SDK 平台 Android 4.0.3,API 15,修订版 1 jdk jdk-7u3-windows-i586

在我的 path 变量中,我添加了 *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 update 3),首先安装 jre 作为 jdk 安装的一部分,然后安装 jre 7 。所以现在我有 2 个文件夹:C:\Java32BitInstallation 目录中的 jre 和 jre7。这可能与我的模拟器没有出现有关吗?我是否需要指定其他环境变量或修改现有变量?请帮忙。

顺便说一句,我有没有提到 logcat 什么也没显示。

【问题讨论】:

我不知道您是否设法解决了这个问题。最近我遇到了同样的问题。尝试使用emulator -debug-init -logcat '*:v' 运行模拟器。这可能会导致您找到根本原因。我的 ServiceManager 失败了。看来我删除了一些 ServiceManager 文件。 我在模拟器上运行我的程序时遇到了黑屏。鉴于您的问题听起来像是 avd 设置问题,我只是想让其他人知道内存泄漏也可能导致黑屏。在我擦除 avd、重新启动 logcat 并重新运行模拟器之前,我的 logcat 没有显示垃圾收集器 GC_MESSAGE。希望这对某人有所帮助,因为我只是在删除和重新创建 AVD 时花了很多时间,而这不是我的问题.. :-/ 请看下面的链接。对我来说效果很好。 ***.com/questions/23509626/… @Markus “模拟器”命令在哪里工作?不在平台工具中 @FabioR:在 Mac 上,您可以按 Command+Option+Escape,选择 qemu-system-i386强制退出。等效的方法也应该适用于其他操作系统。 【参考方案1】:

25.07.2018 更新:

最新的 Android Studio 版本不再有这个选项。 如果问题仍然存在,请尝试在Verify Configuration 对话框(如果可用)中的“模拟性能”下拉列表的值之间切换,或参考Configure Emulator graphics rendering and hardware acceleration。

26.02.2014 更新:

developer.android.com 的Configuring Graphics Acceleration 章节中有两个提示。

注意:从 SDK Tools Revision 17 开始,模拟器的图形加速功能是实验性的;使用此功能时请注意不兼容和错误。

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

所以 Android 4.0.3(API 级别 15)似乎是图形加速的最低要求。

原答案

我在使用最新的 Android SDK 时遇到了同样的问题。

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

“使用主机 GPU”仅适用于将 Android 4.2 作为“目标”的我。

【讨论】:

好的,知道了。我不得不用我的 SDK 管理器更新一些东西。不幸的是,我不能确切地告诉你哪个更新是正确的,但我想这与处理器模拟器有关。 对我来说恰恰相反——我必须打开“HOST GPU”才能让它工作。唯一的问题是我无法在该模式下截屏:/ 主机 GPU 需要在 Ubuntu 12.04 和 android sdk 19 上为我打开 找不到这个选项 - 使用 Android Studio 2.3.3 Android 4.0.3 模拟器在我在 Android Studio 3.4(Linux、Windows 10)中打开 gpu 模式后工作。您无法更改“验证配置”对话框中的选项。无论您在 Emulated Performance 中选择什么,它都会强制关闭 gpu 模式。所以直接改config.ini。 hw.gpu.enabled=yes 和 hw.gpu.mode=on。配置文件通常在 /user 文件夹/.android/avd/emulator name.avd/.【参考方案2】:

我最近在模拟器 Nexus 5 (Android O) 中遇到了同样的问题。我已经去 Android 虚拟设备管理器和擦除用户数据,它解决了我的问题。

【讨论】:

为我工作。谢谢。 2020 年为我工作,通过命令行在 Windows 上运行 这是最常见的解决方案。应该是公认的答案。 这也适用于我在带有 Android Studio 4.1.12 的 Linux 上。我很困惑,发生这种情况时没有在任何地方注册任何错误。 非常感谢,亲爱的,它就像魅力一样 :)【参考方案3】:

我在模拟更大的设备(Nexus7 和 10)时遇到了问题,而手机大小的模拟器效果很好。平板电脑只会持续数小时黑屏。真正有帮助的是这里大多数人推荐的相反:在设置“使用主机 GPU”的复选框并将目标设置为最高的 android(在撰写本文时为 4.4.2)之后,7 和 10 可以作为预期的!

【讨论】:

这也对我有用。确保勾选使用主机 GPU 并将目标设置为 Android 4.4.2。 谢谢。我勾选了选项,4.2.2 开始工作!我也相信其他人提到的。多么奇怪的 Java 世界! 正是我需要的。谢谢! 无论是否选中“使用主机 GPU”,API 级别 14 都不适合我。 API 级别 17 已选中“使用主机 GPU”。 这也对我有用,我在 2015 年初使用 MacBook,没有任何独立显卡。【参考方案4】:

您是否尝试过电源按钮 :) ... 它确实对我有用。实际上,模拟器会在关闭之前保存设备状态,因此在最后一次运行时,如果您关闭设备并关闭模拟器,那么在下一次运行中,它将加载先前的状态并显示已关闭的手机,也就是黑屏。尽管此问题可能还有许多其他原因。

【讨论】:

这应该在上面的答案中提到。使用 Android Studio 的第一天,我害怕点击这个按钮,因为我认为它会关闭手机并且再次打开它需要花费很多时间。是的,黑屏意味着手机已关机,您应该像在真实设备中一样使用电源按钮将其唤醒。 这为我节省了很多头痛和时间,非常感谢。想关闭模拟器时不小心按下了这个按钮,下次运行我的应用程序时黑屏时故障排除时没有想到它 想一想,我认为这实际上是我一直以来的问题。谢谢!【参考方案5】:

在启动选项中选中“擦除用户数据”为我修复了它。

转到Android虚拟设备管理器->选择您的设备->开始->选中“擦除用户数据”->启动

【讨论】:

这适用于我在通过团队查看器运行模拟器的 Mac 上。在 Android Studio 2.0 中,此选项出现在编辑按钮旁边的向下箭头中 -> “Wipe Data” 效果很好。如果模拟器是从源代码构建的(在我的例子中是 android pie aosp_x86_64-userdebug),每当执行根目录 make 命令时,需要使用-wipe-data 参数启动模拟器以使其正确启动。【参考方案6】:

Mac 用户:很遗憾,如果您有一台较旧的 Mac(例如 2009 年末)并且正在使用 Yosemite,则不能将 HAXM 用于 64 位架构。根据 HAXM 的发行说明:

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

当我看到这句话时,我花了一天时间试图解决这个问题。唯一可行的是在您的 AVD 中使用最新操作系统的非 x86 版本(例如 Lollipop Android 5.0.1 armeabi-v7a)

【讨论】:

【参考方案7】:

“Android 设备管理器”恢复出厂设置

在较新版本的 Android Studio 中,这称为“擦除数据”,它位于虚拟设备管理器中设备的右键菜单中。

【讨论】:

这对我有用,谢谢。在 VS 2019 中,转到 Android 设备管理器,右键单击并“恢复出厂设置”。我有一个黑屏模拟器,这解决了我的问题。【参考方案8】:

这是我解决它的方法: 我使用以下命令运行模拟器:

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 并查看日志,发现设备无法访问笔记本电脑摄像头,因此我编辑了配置以禁用摄像头。之后,一切正常!【参考方案9】:

也突然出现了这个问题。 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 的回答一样。如果它已经在运行(黑屏),您也可以通过这种方式冷启动。

【讨论】:

如果模拟器正在运行,请停止模拟器,单击屏幕截图中显示的“擦除数据”选项,然后重新启动模拟器将 100% 解决您的问题。谢谢。【参考方案10】:

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

选择>>擦除数据之后你可以选择>>冷启动..

它对我有用

【讨论】:

【参考方案11】:

我将其更改为始终“冷启动”以解决我的问题。在此之前,当我运行adb devices 时,它总是显示为offline

【讨论】:

冷启动也对我有用。做过一次,从那以后就没有问题了......但是,每隔一段时间它就会发生......【参考方案12】:

您的设备配置错误。如果你这样做,它将永远不会启动并且永远不会在 Logcat 中显示任何内容。

我建议使用 AVD 管理器中可用的默认“设备定义”之一创建新设备。就像在“设备定义”选项卡中突出显示您想要的设备类型并单击“创建 AVD...”按钮一样简单,然后填写一些详细信息。我首先将“内部存储”调整为 8GB 左右,(也许)调整为 2GB 的“SD 卡”,而其他一切都保持不变。尝试启动设备,如果您在屏幕上看到“Android”弹出,您正在运行。第一次启动通常需要一些时间,所以请稍等一下并观察 Logcat 是否有任何问题(“DDMS”视角在这里会有所帮助)。

如果您仍然看到带有默认设备定义的黑屏,则说明您在其他地方遇到了导致设备故障的问题。如果是这种情况,挖掘日志可能是您唯一的机会。如果没有其他方法,您可以随时尝试重新下载 ADT 并重新安装 SDK。

这里的目标是让您使用(非常)基本的设备启动并运行,所以此时不​​要为超级令人印象深刻的规格而努力,而只是努力让它运行。一旦发生这种情况,请尝试逐一调整设置,直到您将其指定为您喜欢的方式。请记住,模拟器有其局限性,它不能替代真实设备(尽管它大部分时间都可以工作;)

【讨论】:

在发布问题将近一年后看到回复感到惊讶。我已经尝试过您之前提到的步骤,但这没有帮助。我升级了 SDK,它工作正常。【参考方案13】:

确保您已安装最新的 HAXM 版本。我在 1.0.1 版本中遇到了同样的黑屏问题,而 1.0.8 版本已经可用。安装程序可以通过 SDK 工具下载,以实际安装您必须执行的模块

android-sdk-directory\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

【讨论】:

【参考方案14】:

在我的 Nexus 7、Nexus 10 和 Pixel 上也有这个问题,这意味着在所有模拟器中。

经过几天的努力解决这个问题, 我终于想通了。 好吧,上面有很多答案可能对您有用,也可能不适合您,因为它们的配置可能与您的配置略有不同。

我会告诉你我的解决方案:

在创建这些模拟器时,我检查了图形中的硬件 - GLES 2.0 以获得更好的性能。 对我来说这是个问题

如果你也这样做了,那么,

Go to AVD Manager -> Select your emulator -> Click on Edit configuration (in Actions column marked as pencil) -> in Emulated performance - Graphics -> Select Software - GLES 2.0.

然后点击Show Advanced Settings -> Set none for both Front and Back camerahit Finish

现在select your emulator in AVD Manager and click on Dropdown arrow in Actions column -> select Cold Boot Now

你准备好了?

【讨论】:

【参考方案15】:

如果您在创建 AVD 时选择了“使用主机 GPU”选项,这是一个已知错误。 https://code.google.com/p/android/issues/detail?id=28614 取消选中该选项,它应该可以工作!

【讨论】:

【参考方案16】:

只需尝试在“Intel Atom (x86)”上设置 CPU/ABI 并取消激活“使用主机 GPU”复选框。

【讨论】:

【参考方案17】:

模拟器黑窗的相关问题:

安装新窗口时发生。与 windows 图形相关的问题在 windows 的 CD 上。您必须更新 windows 并按照以下步骤操作。

如果仿真性能图形是(软件 GLES 则选择它以-->自动)

或者 如果 Emulated Performance Graphics 是 (Automatic 然后选择它到-->Software GLES)

这种交替可以解决这个问题。

【讨论】:

【参考方案18】:

以下修复对我有用:

    找到~/.android/avd中的AVD文件夹 打开config.ini

    用这些值替换以下设置:

    hw.gpu.enabled=yes
    hw.gpu.mode=on
    
    保存并关闭文件 不要在 Android Studio 中打开 AVD 设置屏幕,否则会恢复上述设置 启动模拟器

感谢Sunsugh Park提供the fix。

我已通过Black screen starting API 15 向 Google 报告此情况。请给问题加注星标,让他们修复它。

编辑

实际上,当模拟器启动正常时,它在打开应用程序后崩溃。因此,模拟器团队必须出于某种原因禁用硬件图形。不幸的是,让模拟器工作似乎是不可能的。

【讨论】:

【参考方案19】:

我在 API 28 上遇到了同样的问题,修复结果如下;

为 Android UI 启用 Skia 渲染

当使用 API 27 或更高版本的图像时,模拟器可以使用 Skia 渲染 Android UI,渲染更加流畅和高效。

要启用 Skia 渲染,请在 adb shell 中使用以下命令:

su
setprop debug.hwui.renderer skiagl
stop
start

https://developer.android.com/studio/run/emulator-acceleration#accel-graphics

【讨论】:

【参考方案20】:

我在我的 Mac 上遇到了这个问题。当您创建设备时,如果您将“图形”从“自动”更改为“软件”,它会解决问题,或者至少对我来说是这样。

【讨论】:

我的模拟器在 Mac 上移动到辅助显示器时显示黑屏。这为我解决了。【参考方案21】:

帮助我(Windows 10,英特尔):

    在 Windows 中禁用 Hyper-V 卸载 HAXM(控制面板中的“Intel Hardware Accelerated ...”) 重启 使用 android studio 安装 HAXM(设置 -> Android SDK -> SDK 工具 -> Intel x86 Emulator Accelerator (HAXM Installer) -> 安装) 运行模拟器(也可以尝试擦除 VD 数据/冷启动 VD)

【讨论】:

谢谢!对我有用。 2021 年 12 月【参考方案22】:

我也遇到了同样的问题。当我将 Eclipse 从 EE 更改为 Eclipse Classic 时,它运行良好。在 Win 专业 64 位。 试试看,它也可能对你有用..

【讨论】:

您好 Senthil,感谢您的回复。我想这不是 Eclipse 版本的问题,因为我没有使用 eclipse 来启动模拟器。我正在使用 android sdk 工具 t=for it。 哦..然后等待某个人可能会帮助你..!对不起,,,【参考方案23】:

如需解决方法,请尝试使用 Intel Atom (x86) 映像的 Android 4.0.3 (API 15)。我可以在启用“使用主机 gpu”和 HAXM 的情况下捕获 DDMS 屏幕截图。只有这种组合对我有用。

【讨论】:

【参考方案24】:

我也遇到了同样的问题。我发现 HAXM 硬件加速器最近更新了,但没有重新安装,因为更新管理器只是更新了保存到硬盘驱动器的安装程序包。您将需要删除 HAXM,然后运行该安装程序包以完成更新。通常这会安装到 ANDROID-SDK-ROOT\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager。其中ANDROID-SDK-ROOT是你的android sdk所在的位置。

【讨论】:

【参考方案25】:

对我来说,我不得不关闭前后摄像头。希望这会有所帮助!

【讨论】:

哦,谢谢,在我的情况下,我必须选择模拟后置摄像头或前置摄像头【参考方案26】:

我使用Microsoft's lightning fast Android Emulators utilizing Hyper-V,无论我如何设置 GPU 模式(自动、主机、台面、角度、swiftshader、关闭),我创建的每个 Android 模拟器都有相同的黑屏。虽然我的情况显然与 OP 不同,但我认为它可能对那些使用 Microsoft Android 模拟器并在搜索“android 模拟器黑屏”后来到这里的人有用。

我的解决方案是更新所有 Android 工具:

   Visual Studio > Tools > Android > Android SDK Manager > Tools

截至今天 (2019-02-01),如果您全新安装 Visual Studio 2017,Android 模拟器会出现此黑屏问题。VS 会自动显示有关 NuGet 包、扩展工具等更新的通知,但是不适用于 Android 工具更新。您必须手动检查和更新它们。

【讨论】:

【参考方案27】:

我已经成功地通过 Delphi 在 Android 模拟器上启动和调试了一个 Android 测试应用程序。

我有 Windows 7 64 位、4GB RAM、3GHz 双核处理器和 Delphi XE 5。

以下是我为工作中的同事着急准备的链接,但我会尽快改进:

Debug Android Apps with Delphi

请原谅我的英语语言,但我不是以英语为母语的人。希望你能找到这个小教程

【讨论】:

【参考方案28】:

在运行模拟器时出现蓝屏死机后,我遇到了这个问题。这是我的解决方案(至少适用于 Windows)。我的解决方案是完全重新安装 AVD。 Android Studio 正常卸载过程的问题在于它不会删除所有内容,因此如果您的 AVD 文件已损坏,它们在重新安装时仍会损坏。

为了解决这个问题,我删除了两个目录:

C:\Users\(我的用户名)\.Android

C:\Users\(我的用户名)\.AndroidStudio3.1

然后我在安装程序中重新运行。

我认为这是最万无一失的解决方案如果您的模拟器以前可以工作,因为它会强制完全刷新 Android Studio 的 AVD 组件。

【讨论】:

【参考方案29】:

另一个错误来源可能是PATH 系统变量的长度(在 Windows 系统上)。使用超过 2047 个字符的PATH 变量运行基于英特尔的图像,似乎将此变量的空值传递给控制台/模拟器,因此它无法正确启动。

这是一篇描述这种行为的文章: https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable

我遇到了同样的问题。通过删除未使用/不存在的路径将这个系统变量的总长度减少到 1354 个字符,为我修复了它。

【讨论】:

【参考方案30】:

我遇到了同样的问题。这是我的解决方案(适用于 Mac OS)。我只是将 Android Emulator 的版本降级(从 28.0.3 到 27.3.8)。 Here 是详细的操作说明。

【讨论】:

以上是关于Android 模拟器只显示黑屏和 adb 设备显示“设备离线”的主要内容,如果未能解决你的问题,请参考以下文章

常用的adb命令

Android---adb命令

绘制三角形不起作用:我只看到黑屏和鼠标

[adb devices]后,只显示 [List of devices attached],搜索不到设备信息,怎么办?

android studio 运行模拟器调试时为啥是空白的

adb 命令