Android 我的应用程序在分析模式下运行时停止响应

Android 我的应用程序在分析模式下运行时停止响应,android,memory-leaks,profiler,Android,Memory Leaks,Profiler,我在Android应用程序的长时间运行会话中出现了一些OutOfMemory错误。为了找到原因,我尝试使用Android Studio Profiler,但它停止工作并在使用后10秒内冻结应用程序 这是Android Studio屏幕的截图。它在最初几秒钟内记录活动,然后冻结应用程序并停止记录任何内容-> 我的logcat读取的最后几行(随着时间的增加,最后几行不断重复,我更改了包名) 感谢您的帮助。Android Studio Profiler可能不是执行此任务的合适工具。首先确定可能的内存泄

我在Android应用程序的长时间运行会话中出现了一些OutOfMemory错误。为了找到原因,我尝试使用Android Studio Profiler,但它停止工作并在使用后10秒内冻结应用程序

这是Android Studio屏幕的截图。它在最初几秒钟内记录活动,然后冻结应用程序并停止记录任何内容->

我的logcat读取的最后几行(随着时间的增加,最后几行不断重复,我更改了包名)


感谢您的帮助。

Android Studio Profiler可能不是执行此任务的合适工具。首先确定可能的内存泄漏并修复它们, 然后,您应该能够使用探查器,而无需暂停/终止线程。如果没有提供最少的代码,这可能是最好的答案

这种行为的原因很可能是,ART杀死了停止的线程,而探查器一直在等待它们响应,这显然永远不会发生,因为它们已经不存在了

错误消息来自ART,请参见。在Dalvik VM上,它的行为可能会有所不同(很可能是由于OOM而强制关闭,或者它可能会使VM崩溃)。那可能值得一试。在分析的同时也可以选择使用它,但它远没有Canaray那么方便


更新:Android Studio 3.6.2发行说明状态:

改进了使用探查器时对活动和片段的内存泄漏检测


你能可靠地复制这个吗?如果是这样的话,你能提供准确的复制步骤/一个样本项目吗?对不起,现在不行了。我不久前换了工作,再也无法使用该代码了。。现在已经11个月了:)无论如何谢谢。@RyanM我总是可以复制这个,主要是在Android 8上。0@kaitian521你能在另一台计算机上复制一个新创建的项目吗?@Enselic我让我的学院试一试,他可以复制我在安卓8设备上从安卓3.6.1升级到3.6.3后的工作情况。我想这是一个错误。我在安卓7设备上从安卓3.6.3升级到4.0后的工作情况。我想这是一个错误
2019-04-09 08:42:41.151 19728-20399/br.com.xxxxx V/StudioProfiler: Live memory tracking enabled.
2019-04-09 08:42:41.151 19728-20399/br.com.xxxxx V/StudioProfiler: JNIEnv not attached
2019-04-09 08:42:41.483 19728-20399/br.com.xxxxx V/StudioProfiler: Loaded classes: 8894
2019-04-09 08:42:51.688 19728-20399/br.com.xxxxx E/zygote: E[0]:Timed out waiting for threads to suspend(br.com.xxxxx), waited for 10.000s
2019-04-09 08:43:01.689 19728-20399/br.com.xxxxx E/zygote: E[0]:Timed out waiting for threads to suspend(br.com.xxxxx), waited for 20.000s
2019-04-09 08:43:11.689 19728-20399/br.com.xxxxx E/zygote: E[0]:Timed out waiting for threads to suspend(br.com.xxxxx), waited for 30.000s