これらのイベントは最近、通話にリンクされていますmSurfaceHolder.unlockCanvasAndPost(canvas);
やあみんな、しばらくの間このアプリに取り組んでいて、時々それは私にフリーズし、時には正常に戻り、他の人は単にクラッシュします(時には文字通り電話をクラッシュさせ、私を再起動させます)。それはおよそ1/5の試行ごとにのみ発生し、実際には、ログに記録/プロファイリングしようとしているときにグリッチが発生しないため、何らかの理由でDDMSをキャッチするのは困難でした。
それ以来、DDMSを使用してフリーズ中、以下のアクティビティをログに記録しました。その間に解決策に出くわした場合は、このログに関するサポートをいただければ幸いです。前もって感謝します!
04-15 05:14:03.154: WARN/SharedBufferStack(4148): waitForCondition(DequeueCondition) timed out (identity=355, status=0). CPU may be pegged. trying again.
04-15 05:14:04.154: WARN/SharedBufferStack(4148): waitForCondition(DequeueCondition) timed out (identity=355, status=0). CPU may be pegged. trying again.
04-15 05:14:05.154: WARN/SharedBufferStack(4148): waitForCondition(DequeueCondition) timed out (identity=355, status=0). CPU may be pegged. trying again.
04-15 05:14:06.154: WARN/SharedBufferStack(4148): waitForCondition(DequeueCondition) timed out (identity=355, status=0). CPU may be pegged. trying again.
04-15 05:14:07.154: WARN/SharedBufferStack(4148): waitForCondition(DequeueCondition) timed out (identity=355, status=0). CPU may be pegged. trying again.
04-15 05:14:08.123: INFO/ActivityThread(4148): Removing dead content provider: settings
04-15 05:14:08.154: WARN/SharedBufferStack(4148): waitForCondition(DequeueCondition) timed out (identity=355, status=0). CPU may be pegged. trying again.
04-15 05:14:08.186: DEBUG/SensorManager(4148): _sensors_data_poll() failed, we bail out.
加速度計を使用して、キーをタッチしてキャプチャします。canvasThread
から描画を行うためにを使用している間、これらすべてsurfaceView
。これらはすべて、UIスレッドから「分離」されています。
クラッシュからスタックトレースを取得しようとしてきましたが、デバッガーをそれに接続しても、問題は発生しません。しかし、加速度計からほぼ半分の速度でデータを取得しているように見えますか?これがなぜなのか、何か考えはありますか?
[編集] ---ついにスタックトレースを取得しました
Thread [<9> CanvasThread] (Suspended)
**Surface.unlockCanvasAndPost(Canvas) line: not available [native method]**
SurfaceView$3.unlockCanvasAndPost(Canvas) line: 804
CanvasSurfaceView$CanvasThread.run() line: 233
Thread [<8> AsyncQueryWorker] (Suspended)
**Object.wait(long, int) line: not available [native method]**
MessageQueue(Object).wait() line: 288
MessageQueue.next() line: 146
Looper.loop() line: 123
HandlerThread.run() line: 60
Thread [<7> Binder Thread #2] (Suspended)
**NativeStart.run() line: not available [native method]**
Thread [<6> Binder Thread #1] (Suspended)
**NativeStart.run() line: not available [native method]**
Daemon System Thread [<5> Compiler] (Suspended)
NativeStart.run() line: not available [native method]
Daemon System Thread [<3> Signal Catcher] (Suspended)
NativeStart.run() line: not available [native method]
Daemon System Thread [<2> HeapWorker] (Suspended)
NativeStart.run() line: not available [native method]
新しい情報、DDMSを使用しているときに、フリーズしたときに「プロセスの停止」を押してみました。アプリが1秒間停止した後、アプリが再表示され、ためらうことなく続行されます...奇妙な