glTexImage2D: 错误前:( 0x506 内部 0x1908 格式 0x1908 类型 0x1401

glTexImage2D: got err pre :( 0x506 internal 0x1908 format 0x1908 type 0x1401

当 运行 我的模拟器使用 Android Studio 时,我在模拟器屏幕上看不到任何东西(一切都是黑色的)。我收到以下事件日志:

Emulator:glTexImage2D: got err pre :( 0x506 internal 0x1908 format 0x1908 type 0x1401

我已经尝试清理项目并重建它,但没有任何反应。我认为这只是与模拟器有关。

有人知道这是怎么回事吗?

是的,都是关于模拟器的。

转到工具 > AVD 管理器 >(编辑特定虚拟设备)> Select 冷启动

然后 运行 再次使用该 AVD 进行您的项目。关闭会话并在启动选项中重新设置快速启动。

由于@SirQuickWay 的解决方案对我不起作用,我不得不更改 OpenGL ES 渲染器OpenGL ES API 级别 在模拟器设置中分别为 SwiftShaderRenderer Maximum。您可以在此处找到这些设置:

模拟器栏 > ... > 设置 > 高级(选项卡),如下所示: Android Emulator OpenGL settings

编辑: 应用设置后需要重启模拟器。

我的模拟器运行良好,然后崩溃并出现黑屏。之后它总是以黑屏开始。所以我转到工具 > AVD 管理器 > 虚拟设备配置并单击最后一个工作设备的向下箭头,对设备进行了 "duplicate" 并删除了原始设备。新的 "duplicate" 模拟器工作了。

我遇到了同样的问题。即使我在虚拟设备配置中没有启动选项选项。

我的 AVD 是带有 Android v26 的 Nexus 5X。然后我尝试将版本升级到 28(最新)但同样的错误。然后我删除了那个 AVD 并使用 Nexus 5 皮肤和 Android v28 创建了新的 AVD 并且它起作用了。

我的解决方案是更改 模拟器栏 > 设置 > 高级 > OpenGL ES 渲染 将其更改为 SwiftShader 然后在相同的 Window 中将 OpenGL API Level 更改为 Renderer Maximum 然后复制模拟器并再次启动它。

在我的例子中,事实证明错误是由于我尝试在 API 28 上运行的模拟器而应用程序的 compileSdkVersion 是 27。更改 API模拟器解决了。

  1. 启动 AVD 管理器
  2. 单击 编辑 图标(铅笔) 你的设备。这是在 Actions
  3. 单击 更改 API 和 select 与您的 compileSdkVersion 匹配的那个。如果您还没有它,它将下载。
  4. 重启你的模拟器,然后 享受!

从 Visual Studio / Xamarin 的角度来看同样的问题:

  1. 单击 Visual Studio 中的 Open Android Device Manager 按钮。
  2. Select 导致问题的模拟器并确保它已停止。
  3. 单击顶部的“编辑”按钮更改选项。
  4. hw.gpu_mode 更改为 swiftshader(下拉列表中的选项之一)

在我的机器上,它被设置为 guest,旁边有一个警告三角形: