在VS Code运行项目时Genymotion冻结,报goldfish_dma_create_region错误
问题根本原因
- 该报错
E/eglCodecCommon( 2858): goldfish_dma_create_region: could not obtain fd to device! fd -1 errno=2本质是模拟器调用宿主机GPU的DMA(直接内存访问)设备失败,系统找不到对应设备文件,errno=2对应系统错误「文件/目录不存在」。 - 结合你使用Intel HD 520集成显卡的配置,该问题大多是宿主机显卡驱动和Genymotion底层依赖的VirtualBox GPU加速模块不兼容导致,少数情况是模拟器图形配置错误、VirtualBox权限不足、模拟器缓存损坏导致。
排查修复步骤
- 第一步:更新Intel HD 520官方正式驱动
不要使用Windows系统自动推送的兼容版驱动,直接前往Intel官网下载对应HD 520的最新稳定版驱动安装,完成后重启电脑。 - 第二步:调整Genymotion模拟器图形渲染模式
打开Genymotion,找到对应报错的模拟器,点击右侧设置按钮进入配置页,在「高级设置」中将图形渲染模式从默认的硬件(OpenGL)切换为软件(Mesa),重启模拟器测试。如果软件模式运行流畅无卡顿,可直接使用该模式;如果需要开启硬件加速,继续执行后续步骤。 - 第三步:校验VirtualBox配置与权限
Genymotion底层依赖VirtualBox运行,首先确认你使用的VirtualBox版本和当前Genymotion版本匹配,不要单独升级VirtualBox,优先使用Genymotion安装包自带的VirtualBox版本。
打开VirtualBox,找到对应Genymotion生成的虚拟机,右键进入设置-显示页,将显存调整到128MB及以上,同时勾选「启用3D加速」「启用2D视频加速」。
如果你是Windows系统,右键VirtualBox快捷方式,在属性-兼容性中勾选「以管理员身份运行此程序」,保存后重启VirtualBox和Genymotion。 - 第四步:清理Genymotion缓存
打开Genymotion全局设置,进入杂项页,点击清理缓存按钮,完成后重启模拟器测试。 - 第五步:更换模拟器镜像版本
如果以上操作都无效,删除当前报错的模拟器,重新创建模拟器时选择Android 9及以下版本的镜像,HD 520硬件性能对Android 10及以上版本的兼容度较低,更容易出现加速异常问题。
内容的提问来源于stack exchange,提问作者06546034654102456
相关产品推荐
相关产品推荐

