Hi, I have implemented a 2D game using SurfaceView + GameThread (does nothing atm) + ViewThread pattern that calls a draw method on the SurfaceView.
However, it randomly stops redrawing the screen. "Randomly" means it can take up to several minutes of play to freeze. Other things like timers/etc on the Activity itself continue to work. See the tombstone data below. I really don't know how to read this. It seems that the call to RoundRectShape() is the problem while drawing the rectangle from touchDown to touchUp. However, it works fine for some minutes of random touching before crashing. I would appreciate it if someone with more knowledge could give me some idea on HOW to debug this. Thanks! Here is the tombstone data: "main" prio=5 tid=1 WAIT | group="main" sCount=1 dsCount=0 obj=0x41b809a0 self=0x40091010 | sysTid=31227 nice=0 sched=0/0 cgrp=apps handle=1075041244 | state=S schedstat=( 0 0 0 ) utm=67 stm=29 core=1 at java.lang.Object.wait(Native Method) - waiting on <0x41b80da0> (a java.lang.VMThread) held by tid=1 (main) at java.lang.Thread.parkFor(Thread.java:1231) at sun.misc.Unsafe.park(Unsafe.java:323) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:159) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:843) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1173) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:183) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:259) at android.view.SurfaceView.updateWindow(SurfaceView.java:497) at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:231) at android.view.View.dispatchWindowVisibilityChanged(View.java:7544) at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1039) at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1039) at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1039) at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1039) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1211) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) at android.view.Choreographer.doCallbacks(Choreographer.java:562) at android.view.Choreographer.doFrame(Choreographer.java:532) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) "Thread-3900" prio=5 tid=12 TIMED_WAIT | group="main" sCount=1 dsCount=0 obj=0x4242c4c8 self=0x73c2f6c0 | sysTid=31253 nice=0 sched=0/0 cgrp=apps handle=1924236928 | state=S schedstat=( 0 0 0 ) utm=62 stm=44 core=1 at java.lang.VMThread.sleep(Native Method) at java.lang.Thread.sleep(Thread.java:1031) at java.lang.Thread.sleep(Thread.java:1013) at com.rhs.wordsearch.Threads.GameThread.run(GameThread.java:62) "Thread-3899" prio=5 tid=11 NATIVE | group="main" sCount=1 dsCount=0 obj=0x4242c270 self=0x73c2f270 | sysTid=31252 nice=0 sched=0/0 cgrp=apps handle=1925462672 | state=R schedstat=( 0 0 0 ) utm=8667 stm=274 core=1 #00 pc 0007f9cc /system/lib/libskia.so (SkPath::Iter::consumeDegenerateSegments()+60) #01 pc 0007fbcc /system/lib/libskia.so (SkPath::Iter::next(SkPoint*)+12) #02 pc 0006e014 /system/lib/libskia.so (SkEdgeBuilder::build(SkPath const&, SkIRect const*, int)+328) #03 pc 00091e58 /system/lib/libskia.so (sk_fill_path(SkPath const&, SkIRect const*, SkBlitter*, int, int, int, SkRegion const&)+56) #04 pc 0008ec40 /system/lib/libskia.so (SkScan::AntiFillPath(SkPath const&, SkRegion const&, SkBlitter*, bool)+776) #05 pc 0008ef9c /system/lib/libskia.so (SkScan::AntiFillPath(SkPath const&, SkRasterClip const&, SkBlitter*)+204) #06 pc 0006be64 /system/lib/libskia.so #07 pc 00060ae8 /system/lib/libskia.so (SkCanvas::drawPath(SkPath const&, SkPaint const&)+520) #08 pc 0006a9ff /system/lib/libandroid_runtime.so #09 pc 0001e290 /system/lib/libdvm.so (dvmPlatformInvoke+112) #10 pc 0004d411 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+396) #11 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted) at android.graphics.Canvas.native_drawPath(Native Method) at android.graphics.Canvas.drawPath(Canvas.java:1021) at android.graphics.drawable.shapes.RoundRectShape.draw(RoundRectShape.java:78) at android.graphics.drawable.ShapeDrawable.onDraw(ShapeDrawable.java:209) at android.graphics.drawable.ShapeDrawable.draw(ShapeDrawable.java:224) at com.rhs.wordsearch.Components.Highlight.draw(Highlight.java:230) at com.rhs.wordsearch.Views.WordSearchSurfaceView.onDraw(WordSearchSurfaceView.java:283) at com.rhs.wordsearch.Threads.ViewThread.run(ViewThread.java:69) -- -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.