FAILED BINDER TRANSACTION 跪求andorid开发高手解惑
关键词:android 开发 内存不够 bitmap
先贴错误信息:
09-28 13:40:21.335: D/skia(6135): ------- imageref_ashmem create failed <(null)> 163840
...
09-28 13:40:21.921: E/JavaBinder(6135): !!! FAILED BINDER TRANSACTION !!!
09-28 13:40:21.928: W/System.err(6135): java.lang.RuntimeException: Adding window failed
... ...
09-28 13:40:21.936: W/System.err(6135): Caused by: android.os.TransactionTooLargeException
09-28 13:40:21.936: W/System.err(6135): at android.os.BinderProxy.transact(Native Method)
...
09-28 13:45:27.085: E/SurfaceTextureClient(6135): dequeueBuffer: ISurfaceTexture::requestBuffer failed: -2147483646
09-28 13:45:27.085: E/IMGSRV(6135): :0: DequeueLockStoreBuffer: Failed to de-queue buffer
09-28 13:45:27.085: W/HardwareRenderer(6135): EGL error: EGL_BAD_NATIVE_WINDOW
09-28 13:45:27.116: W/HardwareRenderer(6135): Mountain View, we've had a problem here. Switching back to software rendering.
问题描述:
1、点击按钮A,弹出一个dialog,这个dialog内含有大量bitmap
2、dialog内有按钮B,点击后dialog cancel,并对dialog内的bitmap逐个recycle
3、不断关闭打开dialog连续进行7次后,应用会出现无法响应状态,并不是EXCEPTION,而是ERROR,后台日志见上。
个人推断是内存不足引起,经过DDMS跟踪查看,发现整个操作过程中data object的total size确实是有增无减,但整个应用吃内存的只有BITMAP,且都有及时释放,排查多日,始终找不到结症所在,有高手能看出端倪吗?