首页 > 解决方案 > Crashlytics 报告垃圾收集器内部的 Android 应用程序崩溃

问题描述

在我们的 Crashlytics 数据中,我们看到了大量来自旧设备的报告,如下所示。当系统开始清理内存时,我们的应用程序似乎崩溃了。

该应用程序确实包含malloc()堆中的本机代码。手动审核每一行是不可行的。我们无法访问所有源代码,而且代码库很大。

目前,我们还没有已知的方法可以“在实验室”重现这种情况。我们只有这些神秘的痕迹。

...
# OS Version: 5.0
# Device: Galaxy Note3
# RAM Free: 4.2%
# Disk Free: 34.8%

#0. Crashed: .our.app.id|
0 libart.so  0xb4d24180 (Missing)
1 libart.so  0xb4d244b7 art::gc::collector::MarkSweep::ProcessMarkStack(bool)
2 libart.so  0xb4d2454d art::gc::collector::MarkSweep::MarkReachableObjects()
3 libart.so  0xb4d25491 art::gc::collector::MarkSweep::MarkingPhase()
4 libart.so  0xb4d255bf art::gc::collector::MarkSweep::RunPhases()
5 libart.so  0xb4d1ca87 art::gc::collector::GarbageCollector::Run(art::gc::GcCause, bool)
6 libart.so  0xb4d3c43b art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool)
7 libart.so  0xb4d3d881 art::gc::Heap::ConcurrentGC(art::Thread*)
8 boot.oat   0x745b23db (Missing)

我正在寻找有关如何处理/调试此崩溃的提示。是什么导致了这个痕迹?我可以采取哪些步骤在本地重现它?是什么让垃圾收集器不开心?

标签: androidgarbage-collectioncrashlyticscrashlytics-androidandroid-runtime

解决方案


推荐阅读