Android Studio,运行模拟器时突然出现 GPU 驱动程序问题
Posted
技术标签:
【中文标题】Android Studio,运行模拟器时突然出现 GPU 驱动程序问题【英文标题】:Android Studio, Suddenly got GPU Driver Issue when running emulator 【发布时间】:2017-12-20 16:02:11 【问题描述】:我有一台笔记本电脑,主要用于 android studio 上的 android 开发,今天我运行模拟器时突然收到此错误消息(或它的过时版本)
Your GPU driver information:
GPU #1
Make: 8086
Model: Intel(R) HD Graphics Family
Device ID: 0a16
Driver version: 10.18.10.3945
GPU #2
Make: 10de
Model: NVIDIA GeForce 820M
Device ID: 1140
Driver version: 22.21.13.8476
Some users have experienced emulator stability issues with this driver version. As a result, were selecting a compatibility renderer. Please check with your manufacturer to see if there is an updated driver available.
更新了geforce驱动,但没用,尝试更新intel但失败,有没有办法禁用这个?绕过兼容性渲染器并像以前一样工作,模拟器现在很糟糕。任何解释为什么会突然发生?
另外我正在使用 Windows 7 64 位,如果这对任何事情都有帮助的话,几天前有更新。
【问题讨论】:
【参考方案1】:我使用的是Win10,但遇到同样的问题。上次模拟器更新后,模拟器开始使我的应用程序崩溃。就我而言,问题是模拟器无法在硬件上运行,即使我的 GPU 从未遇到过问题。此外,弹出的“GPU 驱动程序问题”窗口甚至没有标注它认为是哪个 GPU 存在问题。
对我来说,可行的解决方案是从终端运行模拟器,使用命令强制它使用硬件图形(而不是让模拟器决定哪个)运行
emulator -avd avd_name -gpu mode
其中 mode 是 host,因此它将与硬件一起运行。
例如:
使用 Android Studio 终端移动到模拟器所在的文件夹。 Win10 默认为:C:\Users\userName\AppData\Local\Android\sdk\emulator
通过列出可用的模拟器来查找要运行的模拟器:
emulator -list-avds
使用 -gpu host 选项运行模拟器:
emulator -avd avd_name -gpu host
更多信息this link
【讨论】:
一切正常,无需将 Android Studio 更新到 beta 频道。非常感谢!!! :-) 嗨 Api,我在 sdk 中没有找到模拟器文件夹。而且“模拟器”也不被识别为内部或外部命令 @vidha 如果没有模拟器,你是如何运行你的应用程序的?您使用的是 3rd 方模拟器还是 android studio avd?也许您需要通过 avd manager 安装一个?也许 android 的文件夹位于树目录中的其他位置?emulator
应在访问上述路径中的模拟器文件夹后被识别为命令。
太棒了,而且它不会崩溃。这确实是谷歌强制使用极慢兼容模式的奇怪解决方案,因为它可能会崩溃,我应该更新不存在的 GPU 驱动程序。【参考方案2】:
一位 Google 员工在bug report 上与此问题有关的comment 很有启发性。
如果您的系统没有独立 GPU,我们打算在 为了使模拟器更可靠地在 Intel GPU 驱动程序上运行。在 风险自负,您可以通过访问切换回使用 Intel GPU 设置页面,然后将 OpenGL ES 渲染器更改为“角度 (D3D11)”、“ANGLE (D3D9)”或“桌面原生 OpenGL”。
似乎所有使用英特尔 GPU 的系统都会显示此消息,而不仅仅是运行特定版本的图形驱动程序的系统。
solution 将在可能的情况下切换到使用外部 GPU 来运行模拟器。
如果英特尔 GPU 是系统上唯一可用的 GPU,则可以通过覆盖设置中的默认 OpenGL ES 渲染器来重新启用 OpenGL ES 的加速渲染(见下文)。选项有 OpenGL、ANGLE 和 SwiftShader。 SwiftShader 是基于 CPU 的 OpenGL ES 仿真,因此此设置不会提供加速。 ANGLE 是基于 Direct3d 的 OpenGL 仿真。
根据评论,这不能保证有效,确实我能够为 Android 7 模拟器重新启用硬件加速,但启用硬件加速后,我收到的只是 Android 8 模拟器的黑屏。
使用 Ctrl-Shift-S 打开设置,然后根据模拟器的版本,转到Settings -> General -> OpenGL ES renderer
或Settings -> Advanced -> OpenGL ES renderer
较新的模拟器版本:
旧模拟器版本:
更新 #1: 错误报告中的另一个 comment 提供了有关此问题的进一步说明:
如果您只有 Intel HD 4xxx 运行模拟器,则应使用兼容性渲染器。对此我很抱歉,但我们需要能够切换到支持更好的英特尔 GPU 驱动程序,尤其是在运行高 API 级别 (25+) 的系统映像时。那一代(和更早的)英特尔 iGPU 在 OpenGL 兼容性方面存在许多问题。
用于 Haswell(第 4 代)处理器和更早版本的 Intel iGPU 驱动程序似乎对 Android 7.1+ 设备的 OpenGL 支持不够好。所以他们故意回退到使用更好地支持新的安卓模拟器的软件模拟。
这符合我的经验。使用 Intel iGPU 在 Android 7 上效果很好,但在 Android 7.1 上效果不佳,在 Android 8 上根本不起作用。
我的建议是,在为 Intel Haswell 和旧版 iGPU 使用硬件加速时坚持使用 Android 7 模拟器。
更新 #2: 关于这个问题的官方沟通最终以cmets的形式在release notes for Emulator 26.1.3中提供:
哪些 GPU 将切换为使用 ANGLE 或 Swiftshader 渲染确定如下:
较旧的 Intel iGPU 在 OpenGL 和 ANGLE D3D 驱动程序上都存在驱动程序问题。使用 Intel HD Graphics 3xxx 及更早版本的用户将使用 Swiftshader。 由于“Pixel Launcher 不断停止”的错误,一些用户报告无法使用 API 级别 25 的图像。这似乎是某些 Intel HD 4xxx 型号中的驱动程序问题。因此它们将自动切换为使用 ANGLE。为了获得 GPU 仿真的最佳效果,我们建议使用独立的 NVIDIA 或 AMD GPU,或更新的 Intel GPU(Iris、HD 5xxx、HD 5xx/6xx)。
【讨论】:
这是一个不错的屏幕截图,但您在哪里找到该设置?我在“设置”下的任何地方都找不到它。 @DavidElner 我更新了屏幕截图并提供了有关如何访问设置的更多详细信息。确保您位于“设置”的“常规”选项卡中,而不是“代理”选项卡中。 你就是那个男人!在此页面中切换到“桌面原生 OpenGL”和 AVD 配置中的“硬件 GLES 2.0”不仅解决了这个问题,而且在模拟器中实现了令人难以置信的流畅性能。它运行起来和真正的手机一样流畅(甚至更好)!!谢谢! 对于 Nvidia 显卡我已经调整了它的设置。看drivereasy.com/knowledge/… 对于 Android Studio 3.1.3 和 Android Emulator 27.2.9,OpenGL 渲染器 配置位于 Advanced 部分下,而不是在 General 【参考方案3】:我今天遇到了这个问题。根据 Google 模拟器问题跟踪器的建议,我安装了 beta 模拟器 26.1.3。问题已解决。
【讨论】:
对于那些想知道如何访问测试版频道的人,请查看此链接tools.android.com/preview-channel【参考方案4】:按照其他建议,转到设置 -> 外观和行为 -> 系统设置 -> 更新。将“自动检查更新”更改为“Beta 通道”。将模拟器更新到最新的测试版。驱动问题应该消失了。我在使用谷歌地图(应用程序 chrash)运行片段时遇到问题,在将模拟器更新到最新测试版后得到了解决。
【讨论】:
【参考方案5】:我和@Api 做了同样的事情,但我是通过虚拟设备管理器完成的。在设备编辑窗口的图形下拉列表中,我选择了“硬件 - GLES 2.0”。我相信默认是自动的。我仍然收到错误的 GPU 驱动程序弹出窗口,但模拟器不再崩溃。它恢复了正常的可靠性。
【讨论】:
【参考方案6】:对于 linux 用户,请转到 Android 文件夹,在我的情况下,该文件夹位于 ~/Android 下。然后进入 /sdk/emulator。 “模拟器”是一个本地命令。因此,您可以将命令作为本地“./emulator”运行。
其余的按照用户“Api”的说明完成。
$ ./emulator -avd -avd_name -gpu 模式
$ ./emulator -avd Nexus_5X_API_26 -gpu host (#IN MY CASE)
注意:我没有下载 SDK,而是复制并粘贴到 /home 目录下。这就是该命令在全球范围内无效的原因。如果您从头开始设置 sdk avd,它应该可以正常工作。
【讨论】:
【参考方案7】:我设法通过禁用 GPU 来解决此问题,以便 AVD 使用软件加速。 虽然它不会像 GPU 那样快,但至少它有更好的机会正常工作。
我尝试了上述其他选项,但遗憾的是它们都不起作用。
如果您想尝试此选项,请转到 AVD 管理器(在 Android Studio 中:工具 -> Android -> AVD 管理器),然后编辑您的虚拟设备并在图形字段中,您可以设置“软件 - GLES 1.1 ” 而不是“硬件 - GLES 2.0”。
这不是解决此问题的完美方法,但可以提供帮助。
【讨论】:
【参考方案8】:在 Mac OS 上(目前我使用的是 Catalina)
首先移动到模拟器目录 我使用默认位置
cd /Users/yourusername/Library/Android/sdk/emulator
模拟器搜索列表
./emulator -list-avds
例如我的输出是: Pixel_2_XL_API_27
使用 -gpu 命令运行模拟器
./emulator -avd Pixel_2_XL_API_27 -gpu 主机
【讨论】:
【参考方案9】:我在 4 天前遇到了完全相同的问题。我已经尝试了以上两个答案,但都没有奏效。 PS。模拟器可以工作,但似乎只是随机崩溃。我在此错误之前,模拟器工作正常,我可以测试某些功能,我还可以通过 USB 使用一些 Android 设备完全调试而不会崩溃,所以我几乎可以肯定它是模拟器的问题。
编辑:不确定到底是什么问题,但已通过强制 Android Studio 与 nVidia GPU 一起运行来解决。
【讨论】:
【参考方案10】:如何更新我的 GPU 驱动程序? 选择 Windows 开始 > 控制面板。 打开设备管理器。 (或在设备管理器中搜索开始。) 单击显示适配器旁边的箭头。 右键单击英特尔核芯显卡并选择更新驱动程序。 选择自动搜索更新的驱动程序软件。
【讨论】:
有什么理由问这个问题吗? 我建议不要在答案中使用修辞问题。他们冒着被误解为根本不是答案的风险。您正在尝试回答此页面顶部的问题,不是吗?否则请删除此帖。【参考方案11】:解决方案奏效了。在 cmd 中它向我显示我的硬盘分区也已满,只需按照已接受答案的说明进行操作,并在需要时清理驱动器上的一些空间。
【讨论】:
【参考方案12】:在我的装有 intel hd4000 的 Windows 笔记本电脑上,这些都不适合我
有效的是 ubuntu linux 在我在 linux 上运行模拟器后,我对其速度感到震惊:)
看来intel和windows的问题不会很快解决
【讨论】:
以上是关于Android Studio,运行模拟器时突然出现 GPU 驱动程序问题的主要内容,如果未能解决你的问题,请参考以下文章
当我在 android studio 的模拟器中运行代码时,会出现此消息
Android studio 运行模拟器出现dev/kvm is not found问题