在 FMX Android APP 中使用 TAndroidHelper.Context 时出现 OpenGL 错误

OpenGL Error when using TAndroidHelper.Context in FMX Android APP

我正在使用 Rad Studio 10.2 和所有修补程序开发应用程序。

我现在添加到应用程序的图标有问题。在 Android 5 和某些 Android 7 设备(例如 HTC One AICP)下,带有自创图标的 ListView 效果非常好。但是,如果我在带有 Lineage OS(也 Android 7)或其他一些带有制造商 OS 的 Android 7 设备上测试此图像,则图像不会显示在第二个应用程序启动(第一个作品)。我在最后一个 "Application.CreateForm"[= 之间的 Android LogCat 收到以下错误消息(在所有!设备上) 14=](在Project.dpr)和Form.Create的第一次调用:

12-05 11:40:28.395 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/libEGL: call to OpenGL ES API with no current context (logged once per thread) 12-05 11:40:28.395 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/libEGL: call to OpenGL ES API with no current context (logged once per thread) 12-05 11:40:28.395 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/libEGL: validate_display:99 error 3008 (EGL_BAD_DISPLAY) 12-05 11:40:28.395 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/libEGL: call to OpenGL ES API with no current context (logged once per thread)

之后我收到更多错误消息,如下所示:

12-05 11:42:32.115 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/BufferQueueProducer: [SurfaceTexture-0-20262-0] dequeueBuffer: BufferQueue has been abandoned 12-05 11:42:32.115 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-EGLSUB: : dequeue native buffer fail: No such device, buffer=0x0, handle=0x0 12-05 11:42:32.115 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-ES20: : GL_OUT_OF_MEMORY 12-05 11:42:32.116 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx I/info: FMX: X_APP NAME_X: [Context Exception]: Textur für 'TContextAndroid' kann nicht erstellt werden. 12-05 11:42:32.118 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/BufferQueueProducer: [SurfaceTexture-0-20262-0] dequeueBuffer: BufferQueue has been abandoned 12-05 11:42:32.119 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-EGLSUB: : dequeue native buffer fail: No such device, buffer=0x0, handle=0x0 12-05 11:42:32.119 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-ES20: : GL_OUT_OF_MEMORY 12-05 11:42:32.119 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx I/info: FMX: X_APP NAME_X: [Context Exception]: Textur für 'TContextAndroid' kann nicht erstellt werden. 12-05 11:42:32.122 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/BufferQueueProducer: [SurfaceTexture-0-20262-0] dequeueBuffer: BufferQueue has been abandoned 12-05 11:42:32.122 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-EGLSUB: : dequeue native buffer fail: No such device, buffer=0x0, handle=0x0 12-05 11:42:32.122 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-ES20: : GL_OUT_OF_MEMORY 12-05 11:44:04.148 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx I/info: FMX: X_APP NAME_X: [Context Exception]: Textur für 'TContextAndroid' kann nicht erstellt werden. 12-05 11:44:04.178 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/BufferQueueProducer: [SurfaceTexture-0-20262-0] dequeueBuffer: BufferQueue has been abandoned 12-05 11:44:04.178 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-EGLSUB: : dequeue native buffer fail: No such device, buffer=0x0, handle=0x0 12-05 11:44:04.178 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-ES20: : GL_OUT_OF_MEMORY 12-05 11:44:04.179 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx I/info: FMX: X_APP NAME_X: [Context Exception]: Schattiererprogramm für 'TContextAndroid' kann nicht aktiviert werden. 12-05 11:44:04.179 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/BufferQueueProducer: [SurfaceTexture-0-20262-0] dequeueBuffer: BufferQueue has been abandoned 12-05 11:44:04.179 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-EGLSUB: : dequeue native buffer fail: No such device, buffer=0x0, handle=0x0 12-05 11:44:04.179 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-ES20: : GL_OUT_OF_MEMORY 12-05 11:44:04.186 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx I/info: FMX: X_APP NAME_X: [Context Exception]: Fehler in der Kontextmethode "DoFinalizeTexture". 12-05 11:44:04.218 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/BufferQueueProducer: [SurfaceTexture-0-20262-0] dequeueBuffer: BufferQueue has been abandoned 12-05 11:44:04.218 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-EGLSUB: : dequeue native buffer fail: No such device, buffer=0x0, handle=0x0 12-05 11:44:04.218 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-ES20: : GL_OUT_OF_MEMORY 12-05 11:44:04.218 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx I/info: FMX: X_APP NAME_X: [Context Exception]: Schattiererprogramm für 'TContextAndroid' kann nicht aktiviert werden. 12-05 11:44:04.218 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx E/BufferQueueProducer: [SurfaceTexture-0-20262-0] dequeueBuffer: BufferQueue has been abandoned 12-05 11:44:04.218 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-EGLSUB: : dequeue native buffer fail: No such device, buffer=0x0, handle=0x0 12-05 11:44:04.218 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx W/Adreno-ES20: : GL_OUT_OF_MEMORY 12-05 11:44:04.218 20262-20262/com.xxxxxx.xxxxxx.Xxxxxx I/info: FMX: X_APP NAME_X: [Context Exception]: Fehler in der Kontextmethode "DoFinalizeTexture".

据我所知,这些错误是在使用 TAndroidHelper.Context 或更改图标后出现的。

据我所知,此错误是在使用 TAndroidHelper.Context 或更改图标后出现的。

有谁知道为什么这只出现在几个设备上以及如何解决这个问题?

我不知道这个错误是否与不显示图像有关。

我不明白为什么图像不是 displayed/disappearing。

在构建应用程序的最小版本后,我发现此错误与 TPrototypeBindSource 和实时绑定有关。如果删除此组件,图像将在受影响的 Android 7 台设备下正确显示。 错误报告可用: https://quality.embarcadero.com/browse/RSP-19484