android.view.Surface - OutOfResourcesException(a

2019-07-30 07:23发布

我有这个奇怪的错误,并没有发现任何有关可能解决的办法。 这个问题始终围绕有点玩我的应用程序后,随机出现。 该应用程序完美运行在几乎所有的设备。 还是上这个问题是存在的设备之一是运行CM 7.1.0,我知道,很多用户CM7被抱怨类似的问题。

不幸的是,我有一些用户与应用程序有同样的问题,但如果他们使用CM7与否我不知道。 由于我无法重现相同的光盘上的其他应用这个错误就必须与别的东西。

正如我已经说过它出现之前完全随机的,所以复制的源代码不会是没有意义的。 这里的日志,而不是,希望有人已经有同样的问题,可以帮助我。 谢谢。

msm7k.gralloc(1306): alloc mmap(fd=150, size=614400, prot=3) failed (Try again)
msm7k.gralloc(1306): gralloc failed err=Try again
GraphicBufferAllocator(1306): alloc(320, 480, 1, 00000033, ...) failed -11 (Try again)
GraphicBufferAllocator(1306): Allocated buffers:
GraphicBufferAllocator(1306):   0x20a8d0:  300.00 KiB |  320 ( 320) x  480 |  4 | 0x00000133
GraphicBufferAllocator(1306):   0x20c110:  531.25 KiB |  320 ( 320) x  425 |  1 | 0x00000133
GraphicBufferAllocator(1306):   0x292db0:   31.25 KiB |  320 ( 320) x   25 |  1 | 0x00000133
GraphicBufferAllocator(1306):   0x299568:  300.00 KiB |  320 ( 320) x  480 |  4 | 0x00000133
GraphicBufferAllocator(1306):   0x4a2288:  331.25 KiB |  320 ( 320) x  265 |  1 | 0x00000133
GraphicBufferAllocator(1306):   0x4b2518:   31.25 KiB |  320 ( 320) x   25 |  1 | 0x00000133
GraphicBufferAllocator(1306): Total allocated: 1525.00 KB
SurfaceFlinger(1306): Layer::requestBuffer(this=0x3a7618), index=0, w=320, h=480 failed (Try again)
Surface(7024): Surface (identity=224) requestBuffer(0, 0, 0, 0, 00000033) returned a buffer with a null handle
Surface(7024): getBufferLocked(0, 0, 0, 0, 00000033) failed (Out of memory)
Surface(7024): dequeueBuffer failed (Out of memory)
ViewRoot(7024): OutOfResourcesException locking surface
ViewRoot(7024): android.view.Surface$OutOfResourcesException
ViewRoot(7024):     at android.view.Surface.lockCanvasNative(Native Method)
ViewRoot(7024):     at android.view.Surface.lockCanvas(Surface.java:314)
ViewRoot(7024):     at android.view.ViewRoot.draw(ViewRoot.java:1461)
ViewRoot(7024):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1263)
ViewRoot(7024):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1865)
ViewRoot(7024):     at android.os.Handler.dispatchMessage(Handler.java:99)
ViewRoot(7024):     at android.os.Looper.loop(Looper.java:130)
ViewRoot(7024):     at android.app.ActivityThread.main(ActivityThread.java:3835)
ViewRoot(7024):     at java.lang.reflect.Method.invokeNative(Native Method)
ViewRoot(7024):     at java.lang.reflect.Method.invoke(Method.java:507)
ViewRoot(7024):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
ViewRoot(7024):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
ViewRoot(7024):     at dalvik.system.NativeStart.main(Native Method)

Answer 1:

长时间拉着我的Git修订后我终于找到一个没有过这样的问题。 由于应用程序我工作的显示屏幕上的敏感数据,我试图改变显示为“最近访问的应用”部分中的缩略图图像。 为了实现这一点,我是安全标志设置的窗口:

http://developer.android.com/reference/android/view/Window.html#setFlags(int ,INT) http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SECURE

原来,这是导致出现异常,并且结果显示黑屏的问题。 我已经删除它之后,一切工作就好了。 希望这个提示将帮助面临同样问题的其他开发者。



Answer 2:

你需要调用release()如果你不使用你android.view.Surface了。

http://developer.android.com/intl/es/reference/android/view/Surface.html#release ()



Answer 3:

我有类似的问题,而是关系到HW表面。

我有ProgressDialog和登入组件。 该组件可以通过Handler类实现之间的所有通信。

以我为例,从崩溃保存的唯一事情就是关闭硬件加速特定的活动。



文章来源: android.view.Surface - OutOfResourcesException