Android Studio,运行模拟器时突然出现GPU驱动程序问题


69

我有一台笔记本电脑,主要用于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位,如果这对任何事情都有帮助,几天前进行了更新。

Answers:


57

我正在使用Win10,但有相同的问题。上次模拟器更新后,模拟器开始使我的应用程序崩溃。就我而言,问题是即使我的GPU从未遇到问题,模拟器也无法在硬件上运行。同样,弹出的“ GPU驱动程序问题”窗口甚至都没有标记它认为是问题的GPU之一。

对我来说,有效的解决方案是从终端运行仿真器,强制其使用硬件图形运行(而不是让仿真器决定使用哪个图形),使用命令

emulator -avd avd_name -gpu mode

其中模式主机,使其与硬件上运行。

例如:

使用Android Studio终端移至仿真器所在的文件夹。Win10的默认值为:C:\ Users \用户名\ AppData \ Local \ Android \ sdk \ emulator

通过列出可用的模拟器来查找要运行的模拟器: emulator -list-avds

使用-gpu host选项运行模拟器: emulator -avd avd_name -gpu host

有关此链接的更多信息


它像任何东西一样工作,无需将Android Studio更新到Beta频道。非常感谢!!!:-)
raghav_si

2
嗨,Api,我没有在sdk中找到模拟器文件夹。并且“仿真器”未被识别为内部或外部命令
vidha '17

@vidha如果没有模拟器,您如何运行aps?您使用的是第三方模拟器还是android studio avd?也许您需要通过AVD Manager安装一个?也许android的文件夹位于树目录中的其他位置?
Api

1
emulator在上述指定路径内访问模拟器文件夹后,应将其识别为命令。
Panos Gr

太棒了,而且不会崩溃。这确实是Google强制采用极慢的兼容性模式的一种奇怪的解决方案,因为它可能会崩溃,我应该更新不存在的GPU驱动程序。
米洛什·Černilovský20年

41

一个评论中的bug报告由谷歌员工关于这个问题很有启发。

如果您的系统没有独立的GPU,则我们打算进行此更改,以使模拟器更可靠地在Intel GPU驱动程序上运行。由您自担风险,您可以转到设置页面,然后再将OpenGL ES渲染器更改为“ ANGLE(D3D11)”,“ ANGLE(D3D9)”或“ Desktop native OpenGL”,切换回使用Intel GPU。

看来此消息正在针对所有使用Intel GPU的系统显示,而不仅仅是运行特定版本图形驱动程序的系统。

溶液是,如果可能的话,切换到使用外部GPU运行仿真器。

如果Intel 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 rendererSettings -> Advanced -> OpenGL ES renderer

较新的仿真器版本: 设置图

较旧的仿真器版本: 设置图

更新#1:关于错误报告的 另一条评论进一步阐明了此问题:

如果仅运行模拟器的Intel HD 4xxx,则建议使用兼容性渲染器。对此我感到很抱歉,但是我们需要能够切换到受更好支持的Intel GPU驱动程序,尤其是在运行较高API级别(25+)的系统映像时。那一代(或更老)的英特尔iGPU在OpenGL兼容性方面存在许多问题。

看来,用于Haswell(第4代)或更早版本的Intel iGPU驱动程序对Android 7.1+设备的OpenGL支持不够好。因此,他们有意退回使用更好地支持新的Android模拟器的软件模拟。

这符合我的经验。使用Intel iGPU在Android 7上运行良好,但在Android 7.1上运行不稳定,而在Android 8上则根本无法运行。

我的建议是,在为Intel Haswell和较早的iGPU使用硬件加速时,请坚持使用Android 7仿真器。

更新#2: 关于此问题的正式交流最终以仿真器26.1.3的发行说明中的注释形式提供:

确定将哪些GPU切换为使用ANGLE或Swiftshader渲染,如下所示:

  • 较旧的Intel iGPU在OpenGL和ANGLE D3D驱动程序上都有驱动程序问题。具有Intel HD Graphics 3xxx和更早版本的用户将使用Swiftshader。
  • 一些用户报告说,由于存在“ Pixel Launcher不断停止”的错误,因此无法使用API​​ 25级图像。在某些Intel HD 4xxx型号中,这似乎是驱动程序问题。因此,它们将自动切换为使用角度。

为了获得GPU仿真的最佳结果,我们建议您使用独立的NVIDIA或AMD GPU,或使用更新的Intel GPU(虹膜,HD 5xxx,HD 5xx / 6xx)。


2
这是一个不错的屏幕截图,但是您究竟在哪里找到该设置?在“设置”下的任何地方都找不到它。
大卫·埃尔纳

@DavidElner我更新了屏幕截图,并提供了有关如何访问设置的更多详细信息。确保您位于“设置”的“常规”选项卡中,而不是“代理”选项卡中。
本杰明

你是男人!在此页面上切换到“ Desktop native OpenGL”,在AVD config中切换到“ Hardware GLES 2.0”,不仅解决了此问题,而且还使模拟器具有了令人难以置信的流畅性能。它的运行与真实电话一样流畅(甚至更好)!谢谢!
Luciano Fantuzzi

对于Nvidia显卡,我已经调整了它的设置。看看drivereasy.com/knowledge/…–
CodeToLife

1
使用Android Studio 3.1.3和Android Emulator 27.2.9时,OpenGL渲染器配置位于“高级”部分下,而不是一般下
Josem,2016年


2

我所做的与@Api相同,但是我是通过虚拟设备管理器完成的。在设备编辑窗口的“图形”下拉列表中,选择“硬件-GLES 2.0”。我相信默认值为自动。我仍然会看到错误的GPU驱动程序弹出窗口,但是模拟器不再崩溃。它已恢复正常可靠性。


2

根据其他建议,转到设置->外观和行为->系统设置->更新。将“自动检查更新”更改为“测试版频道”。将模拟器更新为最新的Beta。驱动程序问题应该消失了。我在使用Google地图运行片段时遇到问题(应用程序崩溃),该问题在模拟器更新至最新Beta后得以解决。


1

对于Linux用户,请转到Android文件夹,在我的情况下,该文件夹位于〜/ Android下。然后继续执行/ sdk / emulator。“模拟器”是本地命令。因此,您可以将命令作为本地“ ./emulator”运行。

其余操作按照用户“ Api”的说明进行。

$ ./emulator -avd -avd_name -gpu模式

$ ./emulator -avd Nexus_5X_API_26 -gpu主机(#IN MY CASE)

注意:我没有下载SDK,而是将其复制并粘贴到/ home目录下。这就是该命令在全球范围内无效的原因。如果您从头开始设置sdk avd,它应该可以正常工作。


1

我设法通过禁用GPU来解决此问题,以便AVD使用软件加速。它虽然不如GPU快,但是至少它有更好的机会正常工作。

我在上面尝试了其他选项,但遗憾的是它们都不起作用。

如果要尝试此选项,请转到AVD管理器(在Android Studio中:工具-> Android-> AVD管理器),然后编辑虚拟设备,然后在“图形”字段中设置“软件-GLES 1.1” “硬件-GLES 2.0”。

这不是解决此问题的完美方法,但可以提供帮助。


0

我刚好在4天前遇到了完全相同的问题。我已经尝试了以上两个答案,但都没有用。PS。该仿真器可以工作,但看起来似乎只是随机崩溃。在出现此错误之前,我可以正常运行模拟器,并且可以测试某些功能,也可以通过使用一些android设备的USB进行完全调试,而不会导致崩溃,因此几乎可以确定模拟器存在问题。

编辑:不确定到底是什么问题,但是通过强制Android Studio与nVidia GPU一起运行得以解决。


0

在Mac OS上(当前我正在使用Catalina)

  1. 首先转到模拟器目录,我使用默认位置

    cd /用户/您的用户名/库/ Android / sdk /模拟器

  2. 搜索器列表

    ./emulator -list-avds

    示例我的输出是:Pixel_2_XL_API_27

  3. 使用-gpu命令运行模拟器

    ./emulator -avd Pixel_2_XL_API_27 -gpu主机


-1

在配备英特尔hd4000的Windows笔记本电脑上,这些都不对我有用

当我在linux上运行仿真器后,ubuntu linux起作用了,我对它的速度感到震惊:)

所以看来intel和Windows的问题不会很快解决

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.