[英]Static call to glGetString() returns null in Android 5.0
我的應用程序需要在啟動之前檢查一些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並不違反其中一些函數。
即使這樣,我們遇到了一些為glGetString返回NULL的設備(GLES20.GL_RENDERER) ; 這些具有不同的制造商,平台級別等。我們的Crashlytcis數據並未表明此行為對於同一設備是一致的。
因此,我們必須使用回退,以便當此函數返回null時應用程序不會崩潰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.