gpt4 book ai didi

java - 对 glGetString() 的静态调用在 Android 5.0 中返回 null

转载 作者:太空狗 更新时间:2023-10-29 13:22:37 25 4
gpt4 key购买 nike

我的应用程序需要在启动前检查某些 OpenGL ES 功能的可用性。

这是通过以下 Java 代码完成的:

String extensions = GLES20.glGetString( GLES20.GL_EXTENSIONS );

它在 Android 4.4 之前的版本上工作,但现在返回 null,并且日志显示

10-28 17:53:49.475: E/libEGL(8930): call to OpenGL ES API with no current context (logged once per thread)

如何在 Android 5.0 上获取此信息?我需要创建一个新的 OpenGL ES 上下文吗?最简单的方法是什么?

最佳答案

首先,这可能不是升级问题,而是设备特定的问题。也许(你确实没有足够的统计数据跨越数千种设备模型),这种glGetString()的行为不太可能发生在旧模型上,但这种知识不值得寻求,无论如何都无助于解决问题。

khronos wiki解释了所有 OpenGL 函数都需要实时渲染 GL 上下文才能工作,但其中一些函数在没有此类上下文的情况下调用时返回非 NULL 并不违反。

你可以找到初始化代码的例子herehere .

即便如此,我们还是遇到了一些为 glGetString(GLES20.GL_RENDERER) 返回 NULL 的设备;它们具有不同的制造商、平台级别等。我们的 Crashlytcis 数据并未表明此行为对于同一设备是一致的。

因此,我们必须采用后备机制,以便应用在该函数返回 null 时不会崩溃。

关于java - 对 glGetString() 的静态调用在 Android 5.0 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26614632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com