Android 模拟器和 OpenGL ES3:EGL_BAD_CONFIG

2024-02-07

我正在运行一个Android 虚拟设备 https://developer.android.com/studio/run/managing-avds.html在我的 Ubuntu 主机上。 它使用 CPU/ABI Intel Atom (x86),我使用主机 GPU。 模拟器正在使用基于内核的虚拟机 https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine.

只要我使用 OpenGL ES2 上下文,这就会非常有效。 但是,如果我的应用程序尝试创建 OpenGL ES3 上下文,则使用...

const EGLint contextAttribs[] = {
    EGL_CONTEXT_CLIENT_VERSION, 3,
    EGL_NONE
};
context = eglCreateContext(display, config, NULL, contextAttribs);

...然后我得到一个EGL_BAD_CONFIG error:

I/biplane ( 2839): EGL: vendor Android version 1.4 Android META-EGL
I/biplane ( 2839): EGL: client apis OpenGL_ES
I/biplane ( 2839): number of EGL configurations that match our preferred criteria: 1
I/biplane ( 2839): R8 G8 B8 A8 DEPTH24
E/EGL_emulation( 2839): tid 2852: eglCreateContext(919): error 0x3005 (EGL_BAD_CONFIG)

在硬件移动设备上请求 ES3 效果很好。 但是当从模拟器请求它时,它失败了。 从 glxinfo 可以看出,主机完全能够执行 OpenGL ES3.0、ES3.1 和 ES3.2:

$ glxinfo | grep ES3
    GL_ARB_ES2_compatibility, GL_ARB_ES3_1_compatibility, 
    GL_ARB_ES3_2_compatibility, GL_ARB_ES3_compatibility, 
    GL_NV_ES3_1_compatibility, GL_NV_bindless_multi_draw_indirect, 
    GL_ARB_ES2_compatibility, GL_ARB_ES3_1_compatibility, 
    GL_ARB_ES3_2_compatibility, GL_ARB_ES3_compatibility, 
    GL_NV_ES3_1_compatibility, GL_NV_bindless_multi_draw_indirect, 

有没有办法在 kvm 之上的 Android 虚拟设备上运行 OpenGL ES3 应用程序?


Android Studio 3.0 及更高版本支持在模拟器中运行 GLES3 应用程序。

在撰写本文时,该版本的预览版本已经可用。 看:https://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html https://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html

启动模拟器后,您需要更改设置,然后重新启动模拟器,如下所示。

另外,请确保您的应用程序请求 ES3 上下文,因为 Android 示例代码gles3jni 不会这样做。

2018 年 6 月更新

在最新的Android Studio中,我无法再选择OpenGL ES3.1,即使是同一台PC。

为了使其工作,我必须将一个文件添加到 ~/.android/ 目录。

cd ~/.android/
$ echo "GLESDynamicVersion = on" >> ~/.android/advancedFeatures.ini
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 模拟器和 OpenGL ES3:EGL_BAD_CONFIG 的相关文章

  • 我们如何从 Android 通知中提取 bigpicturestyle 图像?

    我有一个通知侦听器服务 可以读取来自其他应用程序的通知 经用户许可 并提取所有数据 能够访问除通知展开视图中显示的图像之外的所有内容 我也在阅读 EXTRA PICTURE 意图值 if extras containsKey Notific
  • 如何使用 kotlin Android 从 Url 读取 JSON?

    我正在使用 kotlin 来开发应用程序 现在我想从服务器获取 JSON 数据 在java中 我实现了Asyntask以及Rxjava来从Url读取JSON 我也在谷歌搜索 但我无法获得满足我的要求的正确详细信息 如何使用 kotlin 从
  • Realm 中的更新语句

    I have VisitingCardPOJO表格 我想更新单个条目说在哪里no 3 VisitingCardPOJO java public class VisitingCardPOJO extends RealmObject Prima
  • 使用 PutDataMapRequest 后,Wearable.DataApi.getDataItem() 的 Uri 是什么?

    我正在测试可穿戴数据层 API如中所述安卓教程 http developer android com training wearables data layer index html 有一个基于底层 APIDataItem http dev
  • 如何在再次恢复应用程序时不重新加载webview?

    我做了一个网络视图应用程序 一切都运转良好 但是 当用户点击后退按钮并打开 恢复 应用程序时 它会重新加载 Web 视图 我该如何预防呢 MainActivity java public class MainActivity extends
  • Android模拟器中的互联网连接始终显示连接状态

    我尝试了多种方法来检查我的 Android 模拟器中的互联网连接 ConnectivityManager conMgr ConnectivityManager getSystemService Context CONNECTIVITY SE
  • 视图无法解析为类型

    这里的视图似乎有什么问题 我该如何解决它 错误 视图无法解析为类型 public void onItemClick AdapterView
  • 在Android中使用RxJava2插入SQLiteDatabase

    我在学习RxJava2在安卓中 谁能解释一下我们如何使用将数据插入 SQLiteDatabaseRxJava2 这是我尝试使用的代码示例 但它将数据插入数据库六次 单击时 getCompletableObservable subscribe
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • 在 Android 中跨单元测试和仪器测试共享资源

    现在谷歌已经添加了实验单元测试支持 http tools android com tech docs unit testing support 如何在单元测试和仪器测试之间共享资源 例如 假设我有一个TestUtils java我希望在单元
  • 警报对话框中的 Webview 不显示内容

    我正在开发一个 Android 应用程序 我需要在网络视图和警报对话框上显示一个网站 该站点显示在网络视图中 但不显示在警报对话框中 到目前为止 这是我的代码 WebView WebView myWebView WebView v find
  • 表面视图+gl表面视图+框架布局

    我是 java 和 OpenGL 的新手 我正在尝试获得一个相机预览屏幕 能够 同时显示 3D 对象 浏览完样本后 api 演示 我想结合示例的代码 api 演示就足够了 但不知何故它不起作用 迫使我 启动时关闭 错误被称为空指针 例外 有
  • 通知声音不适用于 api 10 android

    我用这个功能来显示状态notification 一切正常 但没有声音播放notification public void notifiction main String ticker String title String text int
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 带有 backstack Resume 的嵌套片段

    在我的应用程序中有几个fragments in an activity我正在维护一个backStack对于这些fragment 一切都很好 但其中有一个嵌套的片段 当我把它放入backStack然后再次按后退按钮恢复 该片段看起来与先前的内
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • React Native HTTPS Api 调用在 IOS 中有效,但在 Android 中无效

    所以基本上我所做的就是简单地对启用了 HTTPS 的 UAT 服务器进行简单的 Axios 调用 我已经在 IOS 中测试了整个应用程序 API 调用工作正常 但一旦我在 Android 中测试了相同的应用程序 在真正的 Android 设
  • 如何在android中安装和使用couch db

    我应该如何在 android 中安装和使用 couch Db 我的意思是本地沙发数据库 我可以在平板电脑和模拟器中使用它 为此我必须遵循哪些步骤 我目前正在开发一个使用它的项目 有两种选择 1 couchbase android 是的 co
  • ARM Chromebook 上的 Android 开发环境?

    我尝试了多次安装和使用安卓工作室 https developer android com studio index html on an ARM Chromebook C100P https archlinuxarm org platfor

随机推荐

  • mutableStateOf 在重组后保留值,无需记住 Jetpack Compose 中的 API

    任何时候更新状态都会发生重组 但在这里 我没有使用记住API 但在重组之后它也保留了该值 是mutableStateOf 会记住没有值remember API Composable fun MyChildUI var count by mu
  • 两个具有相同变量名的 foreach 循环破坏了元素的顺序

    这是我的代码 foreach datawallright adds as ad ad img get ad pic url this gt em gt getReference models MmAds ad id crop ad desc
  • Facebook SDK 未加载...all.js GET 失败

    我正在使用中提供的相同代码here http developers facebook com docs reference javascript div div
  • 如何在sql中使用like和join?

    我有 2 个表 例如表 A 和表 B 我想执行联接 但匹配条件必须是 A 中的列 类似于 B 中的列 这意味着任何内容都可以出现在该列之前或之后乙 例如 如果 A 中的列是 foo 然后 如果 B 中的列是 fooblah somethin
  • asyncio 是否支持从非主线程运行子进程?

    我正在开发一个应用程序 主要由服务组成 这些服务是具有自定义运行循环的线程 其中一项服务需要生成子进程 我不太明白它是否有效 官方的文档 https docs python org 3 library asyncio subprocess
  • JS 翻译?

    基本上需要在JS中生成自定义 一些不同然后是不是 消息 警报 如何处理其中的翻译 请看一下jQuery i18n http recurser com articles 2008 02 21 jquery i18n translation p
  • Android Studio 未加载[重复]

    这个问题在这里已经有答案了 在 Google 发布基于 IntelliJ 的 Android Studio 后 我想尝试一下 但遇到了问题 它安装得很好 并且在安装过程中成功找到了 JDK 但是当我尝试启动它时没有任何反应 没有错误 没有闪
  • 并行联合...SQL Server 会这样做吗?

    如果我想合并位于不同驱动器上的多个表的数据 SQL 会并行提取数据吗 有什么我应该了解的相关设置或提示吗 至少从 SQL Server 2005 开始 UNION 应该并行运行 如果表位于不同驱动器或同一驱动器上 则没有什么区别 在现代世界
  • 如何将 INT64 写入 CString

    我正在 c windows 中编码 INT64 dirID 1 CString querySQLStr T querySQLStr Format L select from ImageInfo where FolderPath 64d di
  • ORACLE:使用 LEFT JOIN 时物化视图不起作用

    我想从 2 个表的 LEFT JOIN 创建一个物化视图 但是以下给了我一个错误 SELECT field1 FROM table 1 a LEFT JOIN table 2 b ON a field1 b field2 ORA 12054
  • import.io JSON 数据

    我需要从 import io 生成的 JSON 中输出一些值 这是 JSON object stdClass 1 7 offset gt int 0 results gt array 5 0 gt object stdClass 2 3 v
  • 跟踪实例化对象数量的 Java 类变量

    我有这个班级 Student 带有变量 StudentID public class Student extends Person int studentID 0 int level public Student public Studen
  • 用户会话 ID 作为 Ajax 调用中的参数

    我创建了一个HttpHandler我将使用jquery Ajax call This HttpHandler将访问数据库并检查与当前登录的用户 用户被认为是通过使用 Session 登录的 其属性称为user id Session user
  • 为什么我的密钥标识符不匹配?

    我正在尝试解密 S MIME 电子邮件 最初通过 Outlook 发送 为此 我使用 bouncycastle API 不过 我遇到了障碍 我在 Windows 证书存储中拥有收件人的证书 我之前曾用它向对方发送经过签名和加密的电子邮件 而
  • Java 到 Google 电子表格

    我试图使用 Java 进行编程以连接到 Google Spreadsheet 以进行数据检索或修改单元格中的数据 我的 Google 电子表格链接是https docs google com spreadsheets d 1UXoGD2go
  • Python argparse - 强制参数 - 位置或可选

    我希望用户能够使用位置参数或可选参数将强制参数传递给 argparse IE 以下两种形式均有效 my prog arg my prog m arg 我见过Argparse 可选位置参数 https stackoverflow com qu
  • 为什么这段代码会打印两次? [复制]

    这个问题在这里已经有答案了 可能的重复 Linux gcc 中 fork 的工作 https stackoverflow com questions 3513242 working of fork in linux gcc include
  • 使用 Dagger 2 + Kotlin + ViewModel 注入 ViewModel

    class SlideshowViewModel ViewModel Inject lateinit var mediaItemRepository MediaItemRepository fun init What goes here 因
  • 如果数组在 List 或 Map 内进行注释,Java 8 TYPE_USE 注释将不起作用

    我正在尝试编写一个带有注释的简单验证库 该注释使用 Java 8 中的新 TYPE USE 目标 访问这些东西的方式非常复杂 给我留下了两个非常混乱的代码 它们执行完全相同的操作 但也与他们实际要做的事情非常相关 因此 我决定创建一组简单的
  • Android 模拟器和 OpenGL ES3:EGL_BAD_CONFIG

    我正在运行一个Android 虚拟设备 https developer android com studio run managing avds html在我的 Ubuntu 主机上 它使用 CPU ABI Intel Atom x86 我