Hi,

I have some question about the usage of some APIs in Surface.java
1) Surface::lockCanvas+...+Surface::unlockCanvasAndPost
2) Surface::openTransaction+...Surface::closeTransaction
In my code, I create a java Surface in windowmanger and use 1) to draw
some image on it.
I set the layer to "SYSTEM_OVERLAY_LAYER*10000+1000" to let it topest.
(not sure if it is OK)
I do not destory it for it would be used all the time.
Then, I use 2) to show/hide/... the surface at any time.

But it is found Surface::lockCanvas failed for wallpaper occasionally,
once it happens, Surface::lockCanvas for wallpaper always fail.
The log shows:
Surface : surface (id=2, identity=4) is invalid, err=-19 (No such
device)
Surface : dequeueBuffer failed (No such device)
ViewRoot: IllegalArgumentException locking surface
ViewRoot: java.lang.IllegalArgumentException
ViewRoot:     at android.view.Surface.lockCanvasNative(Native Method)
ViewRoot:     at android.view.Surface.lockCanvas(Surface.java:288)
ViewRoot:     at android.view.ViewRoot.draw(ViewRoot.java:1284)
ViewRoot:     at android.view.ViewRoot.performTraversals(ViewRoot.java:
1115)
ViewRoot:     at android.view.ViewRoot.handleMessage(ViewRoot.java:
1634)
ViewRoot:     at android.os.Handler.dispatchMessage(Handler.java:99)
ViewRoot:     at android.os.Looper.loop(Looper.java:123)
ViewRoot:     at com.android.server.ServerThread.run(SystemServer.java:
491)

Some other log show 2) may effect the surface used by StatusBar:
  1226  1292 E SurfaceComposerClient: openGlobalTransaction() called
more than once. skipping.
  1226  1951 D KeyguardViewMediator: setHidden false
  1226  1951 D KeyguardViewMediator: setHidden false
  1226  1951 D KeyguardViewMediator: setHidden false
  1226  1951 E SurfaceComposerClient: Not in transaction
(client=0x2d07c8, SurfaceID=0, mTransactionOpen=0
  1226  1951 E WindowManager: Failure updating surface of
Window{43efc238 StatusBar paused=false}size=(320x19), pos=(0,-14)
  1226  1951 E WindowManager: java.lang.IllegalArgumentException
  1226  1951 E WindowManager:     at
android.view.Surface.setSize(Native Method)
  1226  1951 E WindowManager:     at
com.android.server.WindowManagerService.performLayoutAndPlaceSurfacesLockedInner(WindowManagerService.java:
10333)
  1226  1951 E WindowManager:     at
com.android.server.WindowManagerService.performLayoutAndPlaceSurfacesLocked(WindowManagerService.java:
9579)
  1226  1951 E WindowManager:     at
com.android.server.WindowManagerService.finishDrawingWindow(WindowManagerService.java:
2565)
  1226  1951 E WindowManager:     at
com.android.server.WindowManagerService
$Session.finishDrawing(WindowManagerService.java:7032)
  1226  1951 E WindowManager:     at android.view.IWindowSession
$Stub.onTransact(IWindowSession.java:212)
  1226  1951 E WindowManager:     at
com.android.server.WindowManagerService
$Session.onTransact(WindowManagerService.java:6971)
  1226  1951 E WindowManager:     at
android.os.Binder.execTransact(Binder.java:301)
  1226  1951 E WindowManager:     at
dalvik.system.NativeStart.run(Native Method)

Thanks a lot for any comments of them...

BstRgds
gan




-- 
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting

To unsubscribe from this group, send email to 
android-porting+unsubscribegooglegroups.com or reply to this email with the 
words "REMOVE ME" as the subject.

Reply via email to