В последнее время наше приложение для Android закрывалось без сообщений о сбоях.
Изучив журналы системного дампа, мы обнаружили общий журнал, который всегда появлялся при возникновении этой ситуации.
К сожалению, у нас нет никаких шагов, чтобы воспроизвести это, поскольку это происходит в случайных точках приложения, но мы хотели бы знать, если кто-то имел представление о том, что может быть основной причиной проблемы такого типа.
По-видимому, когда сборщик мусора начал свою нормальную работу, он попытался освободить больше собственных байтов, чем тех, которые зарегистрированы как выделенные.
Это произошло на Android 7 и 8.1, которые являются версиями, которые мы в настоящее время поддерживаем, используя планшет Samsung Tab A (2016) T585.
Это выдержка из системного журнала:
06-06 11:53:27.243 3954 3965 I art : Background partial concurrent mark sweep GC freed 189192(8MB) AllocSpace objects, 25(7MB) LOS objects, 40% free, 13MB/22MB, paused 1.940ms total 126.255ms
06-06 11:53:27.244 3954 3962 W System.err: java.lang.Error: Cleaner terminated abnormally
06-06 11:53:27.246 3954 3962 W System.err: at sun.misc.Cleaner$1.run(Cleaner.java:147)
06-06 11:53:27.246 3954 3962 W System.err: at sun.misc.Cleaner$1.run(Cleaner.java:145)
06-06 11:53:27.247 3954 3962 W System.err: at java.security.AccessController.doPrivileged(AccessController.java:41)
06-06 11:53:27.247 3954 3962 W System.err: at sun.misc.Cleaner.clean(Cleaner.java:144)
06-06 11:53:27.247 3954 3962 W System.err: at java.lang.ref.ReferenceQueue.enqueueLocked(ReferenceQueue.java:75)
06-06 11:53:27.247 3954 3962 W System.err: at java.lang.ref.ReferenceQueue.enqueuePending(ReferenceQueue.java:243)
06-06 11:53:27.247 3954 3962 W System.err: at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:160)
06-06 11:53:27.247 3954 3962 W System.err: at java.lang.Thread.run(Thread.java:762)
06-06 11:53:27.247 3954 3962 W System.err: Caused by: java.lang.RuntimeException: Attempted to free 98 native bytes with only 91 native bytes registered as allocated
06-06 11:53:27.247 3954 3962 W System.err: at dalvik.system.VMRuntime.registerNativeFree(Native Method)
06-06 11:53:27.247 3954 3962 W System.err: at libcore.util.NativeAllocationRegistry.registerNativeFree(NativeAllocationRegistry.java:223)
06-06 11:53:27.247 3954 3962 W System.err: at libcore.util.NativeAllocationRegistry.-wrap0(NativeAllocationRegistry.java)
06-06 11:53:27.247 3954 3962 W System.err: at libcore.util.NativeAllocationRegistry$CleanerThunk.run(NativeAllocationRegistry.java:196)
06-06 11:53:27.247 3954 3962 W System.err: at sun.misc.Cleaner.clean(Cleaner.java:142)
06-06 11:53:27.247 3954 3962 W System.err: ... 4 more
Я решил создать Отчет об ошибках Google .