部分OPPO機型 AssetManager.finalize() timed out的修復
線上上的APP經常收到如下的崩潰報告
.finalize() timed out
在排除了記憶體洩漏的情況後,仔細核查後發現多發在OPPO系列的機型中,包括R9 A33 A59等等。猜測是OPPO的定製ROM在底層做了什麼修改。為了減少這樣的報錯,只有對OPPO進行特殊處理。
查詢了一些資料後發現這類錯誤是由於回收物件時間過長,由FinalizerWatchdogDaemon負責計時,超時後丟擲異常關閉VM的。
那麼有兩種解決辦法:1關掉這個負責計時的,2延長計時時間
try {
Class clazz = Class.forName("java.lang.Daemons$FinalizerWatchdogDaemon");
Method method = clazz.getSuperclass().getDeclaredMethod("stop");
method.setAccessible(true);
Field field = clazz.getDeclaredField("INSTANCE");
field.setAccessible(true);
method.invoke(field.get(null));
} catch (Throwable e) {
e.printStackTrace();
}
或者
try {
Class<?> c = Class.forName("java.lang.Daemons");
Field maxField = c.getDeclaredField("MAX_FINALIZE_NANOS");
maxField.setAccessible(true);
maxField.set(null, Long.MAX_VALUE);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
參考文件
[1]stackoverflow How to handle :java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize() timed out after 10 seconds errors?
[2]courtier部落格 關於TimeoutException這件小事
相關文章
- [Clickhouse] Clickhouse 報SQLException : Read timed outSQLException
- [debug] vagrant報錯mount.nfs: Connection timed outNFS
- Failed to connect to ESP8266: Timed out waiting for packet headerAIHeader
- 報錯(已解決)Command timed out after no timeout
- 【解決】io.lettuce.core.RedisCommandTimeoutException: Command timed outRedisException
- 關於遠端連線虛擬機器Network error: Connection timed out的問題虛擬機Error
- jdbc訪問KingbaseES資料庫SocketTimeoutException Read timed outJDBC資料庫Exception
- java.sql.SQLException:IO 錯誤:Socket read timed out !JavaSQLException
- WARNING: inbound connection timed out (ORA-3136)錯誤分析
- 執行systemctl status ssh返回“Failed to get properties: Connection timed out”AI
- java.net.SocketTimeoutException: Read timed out異常解決方法JavaException
- oozie.action.hadoop.LauncherException: IO error Connection timed out: no further informationHadoopExceptionErrorORM
- Feign,HTTP連線超時問題SocketTimeoutException: Read timed outHTTPException
- io.lettuce.core.RedisCommandTimeoutException: Command timed out 解決辦法RedisException
- RetryableException: Read timed out executing導致服務假死無響應Exception
- java.sql.SQLRecoverableException: IO Error: Socket read timed out 排查歷程JavaSQLExceptionError
- Putty或MobaXTerm無法連線VMware虛擬機器 報Network error: Connection timed out的解決方案虛擬機Error
- mongoDB當機修復MongoDB
- Kotlin 泛型中的 in 和 outKotlin泛型
- 【python】pip安裝庫時出現Read timed out.解決辦法Python
- CM agent 傳送heartbeat給CM server 不斷髮生 connection refused:timed outServer
- 如何恢復印表機屬性的“功能”部分
- C#深入學習:泛型修飾符in,out、逆變委託型別和協變委託型別C#泛型型別
- 【Azure Fabric Service】Service Fabric部署失敗問題 Provisioning of VM extension ConfigureVM has timed out.
- win10開機轉圈卡死如何修復 win10開機轉圈卡死修復的方法Win10
- 使用者抱怨OPPO手機系統更新太慢 OPPO:穩定體驗大於OTA修補
- 安全模式如何修復電腦 開機如何進入系統修復模式
- PostgreSQL 恢復大法 - 恢復部分資料庫、跳過壞塊、修復無法啟動的資料庫SQL資料庫
- win10自動修復無法修復你的電腦 華碩win10自動修復無法開機Win10
- 工控機維修資料恢復資料恢復
- OPPO Find X外觀完全曝光 全球屏佔比最高的機型
- OPPO R15異型全面屏真機圖賞 OPPO R15引數詳解
- win10無法自動修復怎麼開機 win10自動修復無法開機的方法Win10
- PrestaShop網站漏洞修復如何修復REST網站
- 筆記本硬碟壞了修復方法教程 膝上型電腦硬碟壞了怎麼修復?筆記硬碟
- Win10無法開機提示“自動修復無法修復你的電腦”的解決方法Win10
- solidity部分修飾符的使用以及合約的部分呼叫方法Solid
- [重慶思莊每日技術分享]-CENTOS7.7 登入顯示:abrt-cli status' timed outCentOS