Тысячи java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize() превысили тайм-аут после 10-секундных исключений в сбоях

Прежде всего, спасибо заранее.... я надеюсь, что вы можете мне помочь, я немного потерян в этом.

Я спрашиваю здесь, кроме того, что об этом говорится в потере тем, потому что я не нахожу здесь решения ни в Интернете... Кажется, это происходит на 99% на устройствах Samsung, начиная с версии 4.2. И я действительно надеюсь, что я не первый, кто спрашивает об этом, и вы можете дать мне ответ, что бы это ни было хорошо или плохо:). Но я не знаю, является ли это проблема Samsung или вообще, я также видел это в других устройствах, но только несколько сбоев... в Samsung тысячи... ¿?¿?

В наших приложениях интегрированы аварийные сбои, и некоторое время назад мы начали получать различные сбои, но мы даже не знаем, настоящие ли они сбои или нет. Исключением является бросок:

Fatal Exception: java.util.concurrent.TimeoutException
com.android.internal.os.BinderInternal$GcWatcher.finalize() timed out after 10 seconds

Это происходит в разных объектах: BinderInternal, Binder, NativeDecimalFormat, BinderProxy, CloseGuard, WindowsCursor и т.п.

Этого не было раньше... и когда я пытаюсь посмотреть в интернете, я просто получаю много людей, но нет решения.

Мой самый большой страх.... когда это происходит? сбивает людей при использовании приложения или просто в фоновом режиме? происходит сбой с сообщением Android OS "приложение внезапно остановилось"? или что-то внутреннее я могу "игнорировать"?

Происходит ли это все дни много раз каждый день, постоянно ли это... но мы все равно не можем воспроизвести это....... вы знаете, что это?

Я даю вам несколько ссылок, они говорят о проблеме сборщика мусора, или плохой финализации / проблема интернет-звонка....

Как обработать:java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize() истекло время ожидания после ошибок 10 секунд?

https://www.reddit.com/r/androiddev/comments/3am3yb/some_crash_reports_have_nothing_to_do_with_my_app/

https://github.com/andstatus/andstatus/issues/301

http://openstackwiki.org/wiki/Java.util.concurrent.TimeoutException_(android.media.MediaMetadataRetriever.finalize)_Zeit%C3%BCberschreitung_nach_10_Sekunden

1 ответ

Мы решили проблему, остановив FinalizerWatchdogDaemon,

public static void fix() {
    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();
    }
}

Вы можете вызвать метод в жизненном цикле приложения, например, attachBaseContext(), По той же причине вы также можете указать производителя телефона, чтобы решить проблему, решать только вам.

Другие вопросы по тегам