UnsupportedOperationException при вызове GLES32 glGetDebugMessageLog
Я хотел бы отладить мою реализацию OpenGL через выходные данные отладки. У меня есть интерфейс для нескольких платформ. На рабочем столе вызов glGetDebugMessageLog работает как обычно.
Но на Android я получаю эту ошибку:
java.lang.UnsupportedOperationException: not yet implemented
at android.opengl.GLES32.glGetDebugMessageLog(Native Method)
at com.rebo.opengles.ExampleInstrumentedTest.testOpenGLES32(ExampleInstrumentedTest.java:45)
at java.lang.reflect.Method.invoke(Native Method)
// <23 internal calls>
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:56)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:384)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2145)
Я также проверил это на двух устройствах с OpenGL ES32 (Android O + P). (Эмулятор AVD пока не поддерживает OpenGL ES 3.2.)
Почему метод не реализован, поскольку он уже был добавлен на уровне API 24? Я сделал свежий проект (мин API 24) и протестировал код в разделе InstrumentedTest.
@Test
public void testOpenGLES32() {
int numErrors = 10; // Number of errors I want to receive.
IntBuffer sources = IntBuffer.allocate(numErrors);
IntBuffer types = IntBuffer.allocate(numErrors);
IntBuffer ids = IntBuffer.allocate(numErrors);
IntBuffer severities = IntBuffer.allocate(numErrors);
IntBuffer lengths = IntBuffer.allocate(numErrors);
ByteBuffer messageLog = ByteBuffer.allocate(numErrors);
GLES11.glEnable(GLES32.GL_DEBUG_OUTPUT_SYNCHRONOUS);
GLES32.glGetDebugMessageLog(numErrors, sources, types, ids, severities, lengths, messageLog);
// Do something with the messageLog
}
В чем может быть проблема?