错误如下:
11-24 10:14:32.046: ERROR/SurfaceComposerClient(56): openGlobalTransaction() called more than once. skipping.
11-24 10:14:32.096: ERROR/SurfaceComposerClient(56): Not in transaction (client=0x19bf80, SurfaceID=0, mTransactionOpen=0
11-24 10:14:32.246: WARN/WindowManager(56): Error creating surface in 480
11-24 10:14:32.246: WARN/WindowManager(56): java.lang.IllegalArgumentException
11-24 10:14:32.246: WARN/WindowManager(56): at android.view.Surface.setPosition(Native Method)
11-24 10:14:32.246: WARN/WindowManager(56): at com.android.server.WindowManagerService$WindowState.createSurfaceLocked(WindowManagerService.java:5860)
11-24 10:14:32.246: WARN/WindowManager(56): at com.android.server.WindowManagerService.relayoutWindow(WindowManagerService.java:1595)
11-24 10:14:32.246: WARN/WindowManager(56): at com.android.server.WindowManagerService$Session.relayout(WindowManagerService.java:5278)
11-24 10:14:32.246: WARN/WindowManager(56): at android.view.ViewRoot.performTraversals(ViewRoot.java:795)
11-24 10:14:32.246: WARN/WindowManager(56): at android.view.ViewRoot.handleMessage(ViewRoot.java:1482)
11-24 10:14:32.246: WARN/WindowManager(56): at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 10:14:32.246: WARN/WindowManager(56): at android.os.Looper.loop(Looper.java:123)
11-24 10:14:32.246: WARN/WindowManager(56): at com.android.server.WindowManagerService$WMThread.run(WindowManagerService.java:440)
11-24 10:14:32.246: INFO/WindowManager(56): Out of memory for surface! Looking for leaks...
11-24 10:14:32.246: WARN/WindowManager(56): No leaked surfaces; killing applicatons!
11-24 10:14:32.046: ERROR/SurfaceComposerClient(56): openGlobalTransaction() called more than once. skipping.
11-24 10:14:32.096: ERROR/SurfaceComposerClient(56): Not in transaction (client=0x19bf80, SurfaceID=0, mTransactionOpen=0
11-24 10:14:32.246: WARN/WindowManager(56): Error creating surface in 480
11-24 10:14:32.246: WARN/WindowManager(56): java.lang.IllegalArgumentException
11-24 10:14:32.246: WARN/WindowManager(56): at android.view.Surface.setPosition(Native Method)
11-24 10:14:32.246: WARN/WindowManager(56): at com.android.server.WindowManagerService$WindowState.createSurfaceLocked(WindowManagerService.java:5860)
11-24 10:14:32.246: WARN/WindowManager(56): at com.android.server.WindowManagerService.relayoutWindow(WindowManagerService.java:1595)
11-24 10:14:32.246: WARN/WindowManager(56): at com.android.server.WindowManagerService$Session.relayout(WindowManagerService.java:5278)
11-24 10:14:32.246: WARN/WindowManager(56): at android.view.ViewRoot.performTraversals(ViewRoot.java:795)
11-24 10:14:32.246: WARN/WindowManager(56): at android.view.ViewRoot.handleMessage(ViewRoot.java:1482)
11-24 10:14:32.246: WARN/WindowManager(56): at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 10:14:32.246: WARN/WindowManager(56): at android.os.Looper.loop(Looper.java:123)
11-24 10:14:32.246: WARN/WindowManager(56): at com.android.server.WindowManagerService$WMThread.run(WindowManagerService.java:440)
11-24 10:14:32.246: INFO/WindowManager(56): Out of memory for surface! Looking for leaks...
11-24 10:14:32.246: WARN/WindowManager(56): No leaked surfaces; killing applicatons!
当播放完一个视频,退出该页面再进入后会概率出现。
该视频播放界面是SingleInstance。
按照surfaceView来说每次离开这个页面都会被destory的
使用surfaceview不会对播放起到加速的目的,加速是通过opencore来实现的~~我觉得你可以跟下每次播放一个片子以后看一下系统的memory情况,通过ADB SHELL然后使用这个命令cat /proc/meminfo去看下memory的情况 ;肯定是代码在使用surface上有了问题导致内存没有释放,你好好跟一下代码~~
11-24 10:14:32.046: ERROR/SurfaceComposerClient(56): openGlobalTransaction() called more than once. skipping.
11-24 10:14:32.096: ERROR/SurfaceComposerClient(56): Not in transaction (client=0x19bf80, SurfaceID=0, mTransactionOpen=0
11-24 10:14:32.246: WARN/WindowManager(56): Error creating surface in 480
11-24 10:14:32.246: WARN/WindowManager(56): java.lang.IllegalArgumentException
11-24 10:14:32.246: WARN/WindowManager(56): at android.view.Surface.setPosition(Native Method) setPosition方法必须在transaction内,但不知为何会导致openGlobalTransaction() called more than once