2021年12月2日模拟器更新后GLSurfaceView无法显示问题求助
模拟器GLSurfaceView显示异常问题解决方案
该故障为Android Emulator 32.x及以上版本的已知OpenGL渲染驱动兼容问题,仅出现在模拟器环境,不会影响物理设备运行逻辑。
一、模拟器版本回退操作步骤
- 打开Android Studio,进入
Settings > Appearance & Behavior > System Settings > Android SDK - 切换到
SDK Tools标签页,勾选右下角的Show Package Details - 找到
Android Emulator项,展开后取消勾选最新的故障版本,选择历史稳定版本点击应用即可完成回退 - 已知无该类GLSurfaceView渲染问题的稳定版本为31.1.4、31.2.8,无特殊需求可优先选择这两个版本
二、无需回退版本的修复方案
方案1:修改模拟器图形渲染模式
打开模拟器侧边栏的设置页,进入Settings > Advanced > Graphics driver,将默认的Automatic切换为Software - GLES 2.0,重启模拟器后即可正常渲染GLSurfaceView。该方案仅略微降低模拟器画面渲染性能,无需修改项目代码。
方案2:调整项目GLSurfaceView配置
在GLSurfaceView初始化代码中添加如下配置,强制指定渲染参数适配新版模拟器驱动:
// Java代码示例 glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0); glSurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);
// Kotlin代码示例 glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0) glSurfaceView.holder.setFormat(PixelFormat.RGBA_8888)
方案3:升级构建工具版本
将Android Build Tools升级到33.0.2及以上版本,同步将项目targetSdkVersion升级到33,可修复新版模拟器的GL上下文兼容问题。
内容的提问来源于stack exchange,提问作者Hans-Ulrich Mährlen
相关产品推荐
相关产品推荐

