我在snapdragon设备上运行我们的Android应用程序时遇到了一些奇怪的崩溃,但在其他设备上运行良好。 以下是进程死前的一些日志:
W/Adreno-EGLSUB( 3075): <DequeueBuffer:583>: dequeue native buffer fail: Unknown error 2147483646, buffer=0x0, handle=0x0
W/Adreno-EGLSUB( 3075): <SwapBuffers:1300>: Invalid native buffer. Failed to queueBuffer
W/Adreno-EGLSUB( 3075): <updater_thread:456>: native buffer is NULL
D/QCUtilClass( 2464): extended extractor not needed, return default.
和
E/BufferQueue( 357): [xxx.xxxx.xxxxx(our game app)] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count
W/Adreno-EGLSUB( 3075): <DequeueBuffer:583>: dequeue native buffer fail: Invalid argument, buffer=0x0, handle=0x0
W/Adreno-ES20( 3075): <gl2_surface_swap:43>: GL_OUT_OF_MEMORY
W/Adreno-EGL( 3075): <qeglDrvAPI_eglSwapBuffers:3590>: EGL_BAD_SURFACE
.....
任何帮助都将不胜感激。 感谢。
答案 0 :(得分:2)
看起来它是从BufferQueue第401行触发的。缓冲区大小在队列构造函数中初始化。
尝试在Android清单中禁用硬件加速。看起来它会有所帮助。如果是这样,请以编程方式依赖于操作系统版本或设备CPU。更像是现代Android OS版本的bug。