Logcat没有显示我的日志调用

116
我是Android编程的新手,想学习如何调试我的应用程序。我似乎无法在LogCat中显示我的Log.i|d|v调用。
这是我正在使用的代码。如您所见,我已经定义了一个LOG_TAG常量,但似乎在LogCat中找不到它。我还导入了android.util.Log,而且我已经确保在我的AndroidManifest中设置了"debuggable"为TRUE。
我还检查了http://developer.android.com/reference/android/util/Log.html,但没有解决这个问题的运气。
我做错了什么?我甚至在正确的地方看吗?我也尝试使用DDMS和Debug透视图,但都没有成功。任何对这个新手的帮助都将不胜感激。谢谢。
我的环境: Windows XP IDE = Eclipse版本:3.6.1,Build id:M20100909-0800 模拟器 = 将其指向android sdk 2.1 api 7
//非常基本的HELLO World代码,带有几个Log.i调用
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class debugger extends Activity {
    private static final String LOG_TAG = "debugger";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.i(LOG_TAG, "line 13");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.i(LOG_TAG, "CREATING NOW");
    }
}

看起来你没有做错什么,你确定你的Activity已经启动了吗?你在logcat视图中有设置任何过滤器吗?你尝试过logcat的命令行版本吗?(adb logcat) - Cheryl Simon
是的,我尝试了命令行并将输出保存到txt文件中,但仍然找不到它。我知道Activity已经启动,因为我在模拟器中看到了“Hello World”消息。我尝试使用和不使用过滤器查看logcat,但仍然没有运气。 - Cavachon
尝试使用命令行adb logcat,首先不要过滤任何内容。我非常确定你的代码正在工作并打印到日志中。 - Heikki Toivonen
LogCat有用吗?例如,您是否可以看到来自其他应用程序(例如系统应用程序)的日志条目? - Vit Khudenko
可能是设备特定的。有时我们需要从手机的隐藏菜单中启用日志记录。https://dev59.com/rmMl5IYBdhLWcg3wyJfz#43999262 - Nitesh Tiwari
31个回答

144

在使用Eclipse时,在"DDMS"视图中,请确保正确的设备(可能是模拟器-xxxx)被选中并突出显示。只有这样才能在"logcat"视图中获取日志输出。

此外,安卓插件有点古怪,有时候仅显示logcat视图中的最后一行。如果出现这种情况,请尝试清除日志。之后,您应该再次获得所有的日志条目(对我很有效)。


是的,我也遇到过所有这些问题。如果您在Logcat视图中滚动,它不会自动滚动到未来的更新,直到您滚动回底部。 - Mike Yockey
2
哈!我为此奋斗了一段时间。打开DDMS,我发现选择了一个旧的模拟器。它为什么不默认选择当前正在运行的模拟器是很奇怪的。 - Will Curran
ddewaele的答案解决了我的问题,你只需要让LogCat知道它的焦点在哪里就可以了。顺便提一下,你不必改变视角来打开设备菜单,只需前往Window>>Show View>>Other>>Android>>Devices即可打开设备面板。 - Jay
@yock 我认为这是有意的,因为假设您想要在滚动到的位置停下来阅读。 - Michael Mior
1
哈哈哈,我太蠢了,不知道什么是DDMS,甚至不知道在哪里找到它。 - Neon Warge
这也是在Android Studio中的解决方案。 - The Unknown Dev

72

如果万事俱备却仍无法解决问题:

我尝试了以上所有方法,但仍然无法找出问题所在,

请尝试以下方法:

adb logcat

我明白了我的日志确实在logcat中,但是这只是adt的小问题。

解决方案:

重启eclipse

这是唯一解决问题的方法。


1
这个方法可以用,但是我不能一直重启Eclipse,因为这个问题经常发生。有没有更好的解决方案? - Khaled Alanezi
@KhaledAlanezi 然后应该考虑使用命令提示符或Windows PowerShell中的logcat(更好)。 - Dheeraj Bhaskar
1
每次出现这种情况,我都会重新启动Eclipse,这总是解决问题的方法。通常一天会发生一次,但我已经习惯了对Eclipse的失望。 - programmer
2
程序员不要再对Eclipse失望了,转移到Android Studio吧,我的朋友 :) - Dheeraj Bhaskar
1
对于我使用远程机器上的模拟器,重启eclipse无效。Logcat从未显示任何东西,但“adb logcat”是一个好提示,它起作用,所以点赞。 - soger
@soger 如果你还没有使用Android Studio的话,那你应该开始使用了,伙计 :-) - Dheeraj Bhaskar

12

我在使用Android Studio时遇到了同样的问题,通过在LogCat右上角的选择框中选择无过滤器成功解决。这样做可以将Android记录的所有后台日志消息包括我缺失的Log调用一起显示在LogCat中。

enter image description here


9
重新启动Eclipse并检查日志记录将会被显示。

6
我发现我的代码自动导入了com.sileria.Log(来自某个库项目),而正确的应该是android.util.Log。请检查你的导入语句。

3

我注意到在启动Android应用程序时,Eclipse有时会抛出异常,然后LogCat停止更新。我通过简单地重新启动Eclipse来纠正这个问题。我不确定您是否尝试过这样做,我知道这远非最佳解决方案,但我怀疑Eclipse插件仍存在一些bug需要修复。


3

我需要使用命令adb usb重新启动adb服务。

在此之前,我可以获取所有日志并进行调试,但无法获取自己的日志行(是的,我可以获取与我的应用程序相关的系统日志)。


我也有这个问题 - 没有自己的日志记录。但这并没有帮助 :( - User

3

最简单的方法:

检查您的Logcat窗口-右上角有一个暂停按钮||(暂停接收新的Logcat消息)

点击几下 + 可能需要重新启动Eclipse(通常在我的情况下有效)


2
在Android Studio中: 点击指向右侧的绿色箭头以重新启动日志记录;如果它不可见,请单击“>>”图标进行定位。

2

您可能无法看到日志的原因有很多,以下是其中大部分的原因。以下是检查大多数原因的步骤:

  1. 确保您的AndroidManifest.xml文件中没有“android:debuggable =”false“
  2. 确保您的logcat未暂停,并确保您已滚动到底部
  3. 您的过滤器应为“无过滤器”或当前应用程序
  4. 在logcat设备列表中选择正确的设备
  5. 如果您没有收到任何消息,请尝试重新启动adb。您可以通过单击“重启”图标(它位于logcat的打印图标后面,看起来像一个从盒子中弯曲的绿色箭头),从Android Studio中执行此操作。如果您看不到它,请将鼠标悬停在logcat太小时继续图标菜单的“>>”上。

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