为什么我的Android手机里logcat没有显示任何内容?

249
为什么在使用Eclipse开发Android应用时,logcat没有显示任何内容?它只是空空如也,什么都没有打印出来。

3
是Eclipse中的logcat视图为空,还是adb logcat命令的输出为空? - David Webb
这也可能发生在调试Android 7(或更高版本)设备时。 [请参阅此主题](https://dev59.com/alkS5IYBdhLWcg3w456B) - Geoffrey VL
“在我的Android”是什么意思?你是指“在我的Android设备上”吗?还是指“在Android Studio中”?或者是其他什么东西?请通过编辑(更改)您的问题来回复,而不是在评论区回复(不要添加“Edit:”、“Update:”或类似的内容——问题应该看起来像是今天写的)。 - Peter Mortensen
29个回答

521

我遇到了同样的问题,但我的解决方法更加基础:

如果Eclipse中的LogCat面板为空,则模拟器没有获得焦点。切换到DDMS视图,尝试点击“设备”面板(屏幕左上角)中的“模拟器”条目。


66
同样的事情也会发生在物理设备上。只需单击表示该设备的条目,日志消息就会突然涌现出来。 - Tyler
3
太好了!我经常遇到这个问题,但不知道如何恢复Logcat。幸运的是,你的提示帮了我 :) - anticafe
2
太好了!我曾经遇到过很多次logcat无法工作的问题,这让我很困扰。 - marlar
3
这应该是正确的答案。救了我的一天! - CelinHC
25
如果这个不能立即生效,重启eclipse,然后它会生效,谢谢@MoMo。 - Sam Sussman
显示剩余6条评论

83

拨号

*#*#2846579#*#*

然后您将看到一个隐藏菜单。进入“项目菜单”>“背景设置”>“日志设置”,并定义日志可用性(日志开关)和级别(日志级别设置)。

请注意,这可能仅适用于华为手机,因为在 Ideos X3 (这里) 中有说明,并且已在荣耀U8860上进行了测试。


说实话,我的Honor手机开始在LogCat中显示日志,然后可能会停止。我不依赖于这个设备的LogCat。你可以安装CatLog(https://play.google.com/store/apps/details?id=com.nolanlawson.logcat)或类似的工具 - 那个工具总是有效的!祝好运。 - denispyr
4
设置日志后,请确保重新启动您的手机。 - William
适用于华为P7-L07。 - Nick Dong
适用于华为MediaPad M2 8.0 M2-801L平板电脑。 - enreas
这个解决方案对我有效:https://dev59.com/mFgQ5IYBdhLWcg3wfT9R - surhidamatya
显示剩余3条评论

71
如果在设备面板中点击无法带来垃圾邮件,请使用从快照按钮右侧的三角形中的退出菜单中的重置adb

2
请注意,控制台将输出 [YYYY-MM-DD HH:MM:SS - DeviceMonitor] Adb 连接错误:EOF...连接尝试:1。正如在 SO 上发布的(https://dev59.com/-HI-5IYBdhLWcg3wJEwK)一样,这是无害的,但您需要拔出/重新连接设备以便它们显示出来。 - paulrehkugler
这样做解决了问题,而且我不必重新连接设备才能显示出来,供参考。 - Achal Dave
刚刚发现了这个问题,但是我只收到了“ADB连接被强制关闭,无法重新连接”的消息。 - Johnny_D

41

我有时也遇到相同的问题,解决方法是通过菜单 文件重新启动(重新启动Eclipse)。


1
不需要重新启动Eclipse > 只需从DDMS中选择您的模拟器或设备即可。 - Mahesh
2
我们没有时间重新启动Eclipse,因为这需要5-10分钟 :( - Vivek Warde

33

2
没关系。我已经移除了我的 Mylyn 插件,问题仍然存在。 - IgorGanapolsky
71
我认为没有任何理由对这个答案进行负投票,它是被接受的答案,因为它解决了TIMEX的问题。如果这不是你的问题,那么可以放心地点赞另一个答案。 - Nikola Smiljanić
什么是"Mylyn"?你能在回答中添加一个链接(或类似的内容)吗?(但是请不要包含“编辑:”,“更新:”或类似的内容 - 回答应该看起来像今天写的。) - Peter Mortensen
@PeterMortensen 我自己也记不清它是什么了 ;) - Nikola Smiljanić

11

虽然 MoMo 提供的答案 可以暂时解决问题,但很可能在下一次启动 Eclipse 或者在另一个模拟器 / 设备上运行时会再次出现。

相比于每次都需要在设备视图中选择我的设备,我发现更好的解决方案是进入 Eclipse 首选项并导航到左侧列表中的 Android -> LogCat,然后启用 "Monitor logcat for messages from applications in workspace"。

这样无论使用什么设备,在应用程序启动后 logcat 将自动开始显示它的输出。

它还将设置一个过滤器,确保只显示来自您的应用程序的输出,您可以根据需要重复使用或禁用它。

启用 Logcat 应用程序输出的设置


"Window" -> "窗口" "Android" -> "安卓" "...etc." -> "...等等" - basickarl
信息:这个修复了Blackberry Priv Android 5.1.1上的LogCat,只有当我按下RUN时才会生效。 - BIOHAZARD

10

可能您的设备未启用日志记录。 尝试运行以下命令。

adb shell
echo 1 > /sys/kernel/logger/log_main/enable

1
那是我华为U8500手机的问题。无论是adb logcat还是eclipse都没有显示任何东西。谢谢! - hectorct
19
如果在/sys/kernel目录下没有'logger'目录,那意味着什么? - aroth
1
尝试在另一个目录中执行: echo 1 > /sys/kernel/logger_mode/logger_mode - AK87
那个目录也不存在。有一个配置目录,但是它是空的。 - Raja
@Roland 我用于调试的Redmi 6A中没有/sys/kernel/logger - WebViewer

6

好的。这是我让它正常工作的方法。我首先按照MoMo的建议,也就是...

如果Eclipse中的LogCat面板为空,则模拟器没有焦点。请转到DDMS透视图,并尝试单击设备面板(屏幕左上角)中的“模拟器”条目。

但是没有用。

然后我尝试了重置adb(Android Debug Bridge),如fyodorananiev建议。 怎么做? 菜单 WindowDevices → 向下三角形菜单按钮 → Reset adb.

它也没有起作用,但我收到了以下消息:

Android hierarchyviewer: Unable to get the focused window from device

这意味着 MoMo 是正确的,我的 Android 设备或模拟器没有焦点。然而,在我的情况下,我采取了不同的解决方案。
对我有用的方法:
1.重新插入连接到计算机的 Android 设备的 USB。
2.重启 Eclipse,如 Abu Hamzah 所提到的(尽管由于我不知道可以执行菜单“文件”→“重启”,我手动关闭了 Eclipse,然后再次启动了应用程序)。
现在我可以在我的日志中看到日志。

对你来说可行的方法太过繁琐且耗时。在Nexsus One、LG LS670和Samsung Galaxy S上,这些方法曾经对我起作用,没有任何问题。但是我不知道Eclipse+ADT开发的当前状态(除了它不再受Google支持)。 - WebViewer

3

如果您正在使用设备,则最简单的检查方法是重新启动Eclipse。

您不必关闭Eclipse

使用菜单文件重新启动

在一两秒钟内,您应该可以看到LogCat返回。


1
只要关闭Eclipse,我就看不出有什么区别。 - LeSam
@LeSam,是的,唯一的区别就是Eclipse会自动重新启动。 - Jack Miller

3

前往开发者设置并检查Debugging\Select App for Debugging是否为空

enter image description here


我有一部BLU Dash XL手机。我之前无法查看日志,但尝试了这个解决方案。哇!成功了!谢谢! - Grace Huang
很遗憾,“选择调试应用程序”并不能解决我的问题。 - WebViewer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接