2017-04-01 38 views
1

致命異常:java.util.concurrent.TimeoutException: android.graphics.Path.finalize()在10秒後超時 at android.graphics.Path.finalizer(Path.java) at android.graphics.Path.finalize(Path.java:748) at java.lang.Daemons $ FinalizerDaemon.doFinalize(Daemons.java:202) at java.lang.Daemons $ FinalizerDaemon.run(Daemons.java:185) 在java.lang.Thread.run(Thread.java:818)什麼是android.graphics.Path.finalize()在10秒後超時的根本原因

我得到這個在我的一個實時應用程序中出現錯誤,我試圖儘可能地找出這個問題,但仍然沒有結果。如果有人能詳細告訴我關於這個問題的詳細方法來修復它,那真的很棒。提前致謝。

編輯:

我發現幾個日誌:

at android.view.GLES20Canvas.nDrawBitmap(GLES20Canvas.java) 
    at android.view.GLES20Canvas.drawBitmap(GLES20Canvas.java:614) 
    at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:545) 
    at android.widget.ImageView.onDraw(ImageView.java:1197) 
    at com.flaviofaria.kenburnsview.KenBurnsView.onDraw(SourceFile:201) 
    at android.view.View.draw(View.java:16536) 
    at android.view.View.updateDisplayListIfDirty(View.java:15466) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697) 
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676) 
    at android.view.View.updateDisplayListIfDirty(View.java:15426) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697) 
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676) 
    at android.view.View.updateDisplayListIfDirty(View.java:15426) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.draw(View.java:16539) 
    at android.widget.FrameLayout.draw(FrameLayout.java:598) 
    at android.view.View.updateDisplayListIfDirty(View.java:15466) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at com.shaiban.audioplayer.mplayer.slidinguppanel.SlidingUpPanelLayout.drawChild(SourceFile:964) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.draw(View.java:16539) 
    at com.shaiban.audioplayer.mplayer.slidinguppanel.SlidingUpPanelLayout.draw(SourceFile:1013) 
    at android.view.View.updateDisplayListIfDirty(View.java:15466) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.support.v4.widget.DrawerLayout.drawChild(SourceFile:1377) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.updateDisplayListIfDirty(View.java:15461) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.View.draw(View.java:16258) 
    at android.view.ViewGroup.drawChild(ViewGroup.java:3713) 
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3506) 
    at android.view.View.draw(View.java:16539) 
    at android.widget.FrameLayout.draw(FrameLayout.java:598) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:3111) 
    at android.view.View.updateDisplayListIfDirty(View.java:15466) 
    at android.view.View.getDisplayList(View.java:15488) 
    at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:309) 
    at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:315) 
    at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:354) 
    at android.view.ViewRootImpl.draw(ViewRootImpl.java:2956) 
    at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2753) 
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2339) 
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1314) 
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7057) 
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:829) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:606) 
    at android.view.Choreographer.doFrame(Choreographer.java:576) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:815) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:145) 
    at android.app.ActivityThread.main(ActivityThread.java:7007) 
    at java.lang.reflect.Method.invoke(Method.java) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
+0

這意味着對象的終結器耗時過長。要麼是它真正的巨大,要麼是線程暫停的原因 - 可能是死鎖。 –

+0

謝謝你的快速回復。任何想法如何檢測代碼的哪一部分造成這種情況?因爲有了日誌,我只能看到上面的stacktrace,並且沒有提到應用程序代碼的來源。 – shaiban

+0

它的來源是垃圾收集器。 Finalize大致就像是一個析構函數,但沒有承諾何時會調用它。它在對象被收集之前調用。 –

回答

0

OK - 這就是我的回答: 保護的方法Finalize被垃圾收集器調用的對象垃圾收集時,上確定不再有對該對象的引用。 子類重寫finalize方法以處置系統資源或執行其他清理。 因爲它是在Google Developer Documentation

由於事實上我在我的應用程序相同的問題,其吸引數以百計的路徑在第二: 看到Visual Sounds Music Visualizer 和我的谷歌遊戲控制檯的統計數據說,這是唯一與Android 5.1

java.util.concurrent.TimeoutException: 
1. at android.graphics.Path.finalizer (Native Method) 
2. at android.graphics.Path.finalize (Path.java:748) 
3. at java.lang.Daemons$FinalizerDaemon.doFinalize (Daemons.java:206) 
4. at java.lang.Daemons$FinalizerDaemon.run (Daemons.java:189) 
5. at java.lang.Thread.run (Thread.java:818) 
相關問題