Exception Log Time:[Sun Jul 16 03:26:28 EET 2017] [15751.216728]
Exception Class: Java (JE)
Exception Type: system_server_crash
Current Executing Process:
system_server
Backtrace:
Process: system_server
Build: Infinix/X601-A1/X601:6.0/MRA58K/X601-H536A1-M-160825V33:user/release-keys
java.util.concurrent.TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds
at android.view.ThreadedRenderer.nDeleteProxy(Native Method)
at android.view.ThreadedRenderer.finalize(ThreadedRenderer.java:418)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:229)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:207)
at java.lang.Thread.run(Thread.java:818)
$** *** *** *** *** *** *** *** Fatal *** *** *** *** *** *** *** **$
因为此类问题大多数呈现低概率性的,而这样一个JE,因Log信息不是很全(只有Java Stack,DB里的SWT_JBT_TRACE为空,无法结合SWT_JBT_TRACE的Native Stack判断),好比某些ANR一样,难以解决。
请按照如下Work around方法修改后测试:
/libcore/libart/src/main/java/java/lang/Daemons.java
private static final long MAX_FINALIZE_NANOS = 10L * NANOS_PER_SECOND; // 10修改为40