Android-активность замораживается, нужна помощь в интерпретации журнала - PullRequest
1 голос
/ 15 апреля 2011

Эти события были недавно связаны с звонком 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.Все это «отделено» от потока пользовательского интерфейса.

Пытался получить трассировку стека от сбоя, но когда я присоединяю к нему отладчик, проклятая штуковина не сработает;однако, кажется, что данные из акселерометра получают почти вдвое быстрее?Любая идея, почему это?

[EDIT] --- Наконец-то получил трассировку стека

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 я пытался нажать «Stop Process», когда он зависает, и приложение на секунду убивает, после чего оно появляется снова и продолжает без колебаний ... wierd

...