Android Studio,logcat 在应用程序关闭后清理

Posted

技术标签:

【中文标题】Android Studio,logcat 在应用程序关闭后清理【英文标题】:Android Studio, logcat cleans after app closes 【发布时间】:2015-06-16 14:50:31 【问题描述】:

android Studio 更新 1.2 Beta 以来,我的 logcat 出现问题。当我运行我的应用程序时,它会像往常一样记录所有内容,然后我的应用程序崩溃,应用程序说:不幸的是,游戏已停止。

几秒钟后,android 会关闭该消息。 发生这种情况时,我的 logcat 也会被完全清除,这意味着我几乎没有时间阅读错误。我确实找到了一些关于缓冲区的信息,但似乎 Android Studio 没有增加的选项除了我怀疑这是问题的事实之外。

可能有用的是,在它清除并填充之后,进程更改为 Android.process.core 并且我在 logcat 中收到的消息是:

04-13 10:28:13.394  12259-12265/android.process.acore D/dalvikvm﹕    
Debugger has detached; object registry had 1 entries

编辑:我确实阅读了有关断点的信息,因此在设置-构建、执行、部署-调试器中禁用了断点上的焦点应用程序,但它没有任何效果。

【问题讨论】:

如果您找到了 adb 程序的安装位置,您可以从终端或命令窗口运行 adb logcat,并可选择将其通过管道传输到寻呼机、grep、tee 或其他任何地方。 是的,你也可以试试adb shell bugreport > log.txt,命令完成后会获取各种日志信息。 @yummy 目前对我来说是最好的,仍然希望找到解决方法,因为在我看来这不是最好的方法。谢谢 我没有找到任何不使用 Android Studio 1.2 清理日志的解决方案,但一个简单的解决方案是在应用程序崩溃时不点击关闭按钮(在设备上)。因此,您拥有所有日志以及应用崩溃的原因。 @Jameltheone 消息仅在屏幕上停留几秒钟。然后它会自行关闭崩溃对话框。所以不要真正控制它。 【参考方案1】:

我遇到了同样的问题,但看起来更像是一个功能而不是一个错误:

在 AndroidStudio 中,Logcat 窗口的默认设置似乎是“仅显示选定的应用程序”(Logcat 窗口的右上角)...正在查看选定的日志进程(默认情况下您当前的启动)。因此,当您的应用在测试期间崩溃时,该过程就消失了,因此过滤器会清除日志。

改为选择“编辑过滤器配置...”并为您的应用设置过滤器,例如:

过滤器名称:我的应用程序 PackageName:com.example.myapp(

...然后选择该过滤器以供将来运行。这应该会为您保留日志,即使在应用崩溃后也是如此。

【讨论】:

非常感谢。两天前我一直在找出错误!现在我知道如何真正查看错误。 :) 你是救世主在清除之前试图复制粘贴日志......我认为这是我的手机在做的,因为其他手机运行正常。 正是我所缺少的。这应该是公认的答案。 有同样的问题。完美运行。 布拉沃布拉沃布拉沃【参考方案2】:

将“仅显示选定的应用程序”切换为“无过滤器”。这样,即使该进程没有运行,您也可以看到该进程的 logcat 输出。

缺点是您的 logcat 将充满来自其他进程的更多垃圾邮件。

【讨论】:

要过滤掉垃圾邮件,请在“仅显示选定的应用程序/无过滤器”下拉菜单之外的搜索栏中输入您自己的应用程序包名称。 太神奇了,谢谢【参考方案3】:

如果发生崩溃,请参阅 IDE 底部的 Run 选项卡。

您可以在这部分看到崩溃原因(即使在 logcat clean 情况下)。

注意:如果上述技巧不起作用,请尝试产生崩溃并立即断开移动电缆(如果您使用真实设备进行测试)。您可以在清理之前看到错误。

更新:如果上述技巧也不起作用,请尝试连接和分离手机,希望问题解决。

Update2:如果再次不起作用,请尝试使捕获无效并重新启动,然后再次开始调试。

Update3:作为最后一种方法,尝试删除应用并重新安装,然后开始调试(如果您不丢失要测试的条件)

【讨论】:

【参考方案4】:

我的应用程序崩溃并重新启动。我在阅读 logcat 以了解发生了什么时也遇到了一些问题。然后我注意到在下拉菜单中,在设备下拉列表旁边它有类似 "com.mypackage.myapp ('some number')" 的内容,当我的应用程序崩溃时,还有另一个选项说“com.mypackage.myapp('一些数字')[DEAD]”。如果选择“Dead”选项,它会显示上一个实例的 logcat。

【讨论】:

崩溃时出现。 我的意思是崩溃。 PID 发生变化,但死机实例未显示在列表中。【参考方案5】:

参加聚会可能会很晚,但我遇到了同样的问题并像这样解决了:

在logcat窗口右上角下拉菜单中选择Edit filter configuration,在下一个菜单中,介绍Filter name和你的Package name

完成,对我来说,它在崩溃后保持日志可见。

【讨论】:

这对我有用 :) tnx【参考方案6】:

在 Android Studio 2+ 中

    点击Run

    点击Edit Configurations

    Run/Debug Configurations 窗口中选择Miscellaneous 选项卡

    确保Clear log before launch复选框未被选中

【讨论】:

【参考方案7】:

我正在使用 Android Studio 4.0 enter image description here

    转至应用的编辑配置。 转到其他选项卡 取消选中启动前清除日志字段。 按确定。 它会工作的..

【讨论】:

没用【参考方案8】:

一旦应用崩溃,过滤器就会清除日志。因此,选择“编辑过滤器配置”并使用过滤器名称创建您自己的自定义过滤器。即使应用程序崩溃,这也会保存带有信息的日志。

【讨论】:

【参考方案9】:

我遇到了同样的问题,这就是解决方案:-

1- 工具 --> Android --> 启用 ADB 集成。

现在您可以正常查看 logcat 和崩溃

【讨论】:

不幸的是,我的 ADB 集成已经启用。可能有用的是,在它清除后我收到消息:04-13 10:28:13.394 12259-12265/android.process.acore D/dalvikvm:调试器已分离;对象注册表有 1 个条目 @BlackLotus 你的问题解决了吗?我面临同样的问题here 这在新的 Android Studio 中不再有效。【参考方案10】:

现在是 2018 年,这仍然可能发生。关闭 Android Studio 并重新打开。

【讨论】:

【参考方案11】:

Android Studio 1.2.2 版的新版本似乎修复了这个错误

【讨论】:

这个错误仍然存​​在,即使在 Android Studio 2.2.2 中也是如此,所以我猜@maxdownunder 假设它确实是一个......“功能”【参考方案12】:

我遇到了同样的问题,但没有一个答案可以帮助我,直到我意识到我的应用程序导致了 OutOfMemoryException。这也是一个可能的根本原因。

【讨论】:

【参考方案13】:

7 年后...

我在 AS ArcticFox 上仍然遇到同样的问题,但没有任何帮助。

但我找到了一种解决方法。

    确保已启用:

    然后,无论应用程序是否处于活动状态或设备是否连接,您都可以看到您的日志。太棒了!

【讨论】:

【参考方案14】:

尽管如此,有时我还是会遇到这个问题,尽管有些解决方案在这里有效,例如重新启动 android studio 需要时间。

在这里我找到了如何在不重新启动工作室的情况下获取错误消息

    启动应用程序 在重现崩溃之前,请在运行选项卡上 崩溃时点击运行标签的内容(不点击内容会丢失报错)

【讨论】:

以上是关于Android Studio,logcat 在应用程序关闭后清理的主要内容,如果未能解决你的问题,请参考以下文章

5.1Android Studio用Logcat编写和查看日志

如何用好Android Studio的logcat

Firebase 注册令牌未显示在 Android Studio logcat 中

如何用好Android Studio的logcat

当我在真机上运行我的应用程序时,android studio logcat 没有显示崩溃的原因

5.1Android Studio用Logcat编写和查看日志