Logcat不显示我的日志呼叫


114

我对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,内部版本号: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");
    }
}

看来您做错了什么,确定要启动“活动”吗?您在logcat视图中是否设置了任何过滤器?您是否尝试过logcat的命令行版本?(adb logcat)
Cheryl Simon

是的,尝试了命令行并输出到txt文件,但仍然找不到它。我知道活动已开始,因为我在模拟器中看到了“ Hello World”消息。我尝试查看带有和不带有过滤器的logcat,但仍然没有运气。
Cavachon

试试命令行adb logcat,不要先过滤任何内容。我很确定您的代码可以正常工作并打印到日志中。
Heikki Toivonen

LogCat是否可以正常工作?例如,您是否看到其他应用程序(例如系统应用程序)的日志条目?
维特·胡登科

它可能是特定于设备的。我们有时需要启用电话隐藏菜单中的日志stackoverflow.com/a/43999262/2783229
nitesh

Answers:


143

使用Eclipse时,请在DDMS透视图中,确保选择了正确的设备(适当地是emulator-xxxx)并突出显示。只有这样,您才能在logcat视图中获得logcat输出。

另外,Android插件有点古怪,有时只在logcat视图中显示最后一行。如果发生这种情况,请尝试清除日志。在那之后,您应该再次获得所有日志条目(无论如何对我有用)。


是的,我也遇到过所有问题。如果您在Logcat视图中滚动,它将不会自动滚动以显示将来的更新,直到您滚动回到底部。
Mike Yockey 2010年

2
哈!我为此战斗了一段时间。打开DDMS,我选择了一个旧的模拟器。为什么它不默认为当前运行的模拟器,这很奇怪。
Will Curran

ddewaele的答案解决了我的问题,您只需要将LogCat放在应关注的位置即可。附带一提,您不必更改视角即可显示设备菜单,只需转到窗口>>显示视图>>其他>> Android >>设备即可显示设备面板
Jay

@yock我认为这是有意的,因为假设是您想停下来并在滚动到的位置阅读。
Michael Mior 2012年

1
哈哈哈,我是如此愚蠢,我不知道什么是DDMS,甚至都不知道在哪里找到它。
霓虹灯Warge

71

如果其他所有方法均失败:

我做了以上所有事情,却不知道出了什么问题,

测试:

adb logcat

弄清楚我的输入在logcat中是真实的,但是那是adt的怪癖。

固定:

重新开始蚀

这是修复它的唯一方法。


1
这行得通,但是由于这个问题对我来说很多,所以我无法继续重启Eclipse。有谁有更好的解决方案?
哈立德·阿兰尼兹

然后,@ KhaledAlanezi应该考虑从命令提示符或Windows Powershell(更好)使用logcat。
Dheeraj Bhaskar 2014年

1
我只是在每次发生这种情况时都重新启动Eclipse,它总是可以解决问题。它通常每天发生一次,但是我已经对日食感到失望
程序员

2
@programmer不再对日食感到失望,移到Android Studio,我的朋友:)
Dheeraj Bhaskar 2015年

1
对我来说,在远程机器上使用仿真器重新启动Eclipse不起作用Logcat永远不会显示任何内容,但它adb logcat是一个很好的技巧,它非常有用。
soger

12

我在使用Android Studio时遇到了同样的问题,并设法通过No Filters在LogCat右上角的选择框中进行选择来解决这个问题。通过这样做,我开始收到所有Android登录到LogCat的后台日志,包括丢失的Log调用。

在此处输入图片说明




3

我注意到Eclipse有时会在启动Android应用程序时引发异常,然后LogCat停止更新。我已经通过重新启动Eclipse纠正了这一问题。我不确定您是否尝试过此方法,并且我知道它离最佳解决方案还差得很远,但是我怀疑Eclipse插件仍有一些错误需要解决。


3

最简单的方法:

签入您的logcat窗口-右上角暂停按钮|| (暂停接收新的logcat消息)

点击几下+最终重新启动Eclipse(通常在我的情况下有效)


3

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

在此之前,我获得了所有日志记录并能够进行调试,但是没有得到自己的日志行(是的,我正在获得与应用程序相关联的系统日志记录)。


我也有这个-没有得到自己的日志行。但这没有帮助:(
Ixx

2

有很多原因可能导致您看不到日志,下面列出了大多数原因。以下是一些检查大多数原因的步骤:

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

2

在Android Studio上:单击指向右侧的绿色箭头以重新启动日志记录;如果看不见,请单击>>图标将其找到。


1

我也是Android-Eclipse的新手。这是我获取LogCat消息以在Eclipse中显示的过程:1:将其添加到调用logcat消息的类中:private static final String TAG =“ MyActivity”; (根据此处的文档)

2:添加此Log.i(TAG,“ inLayout-完成”);当您想显示消息的地方

如果上述方法不起作用,请关闭Eclipse并重新启动它,然后重新运行您的项目。

然后它应该工作。


1

还有另一件事要注意:

在logcat的右上角有一个下拉表,用于按类型过滤消息。确保它在您要查找的级别上(如果它将在断言级别上,则可能会使您的logcat空着)。


1

请转到任务管理器并终止adb.exe进程。再次重新开始蚀。

要么

尝试使用adb kill-server,然后尝试adb start-server命令。


1

可能这是不正确的,并且会更长一些,但是我通过使用以下方法解决了这个问题(Android Studio):

System.out.println("Some text here");

像这样:

try {
       ...code here...
} catch(Exception e) {
  System.out.println("Error desc: " + e.getMessage());
}

1

我在这种情况下花了几个小时。我只看到触摸键日志。而已。问题是... smarthphone。重新启动后还可以。断开电缆连接会导致问题返回。不得不重新启动它。看来Android USB通讯没有精心设计。


谢谢!实际上,这是手机快捷菜单上的USB设置...关于USB调试。我养成了从“仅收费”更改为“传输文件”的习惯。但是,仅收费是使日志记录正常工作的原因。几年后,我才回到Android编程上,这确实限制了我的学习进度。
wwfloyd

然后,我只得到一些日志记录...最近添加的所有内容都被忽略了。在Android Studio中使用“清理并重新运行”进行了排序。
wwfloyd


0

使用SDK 4.0.3时,必须在调试配置>项目>目标上显式选择它,否则它将无法使用Eclipse Indigo(3.7)显示。当然会发生日食重启。


0

在logcat中看到简单的日志输出时,我也遇到了问题。当我安装最新的JDK时,我的问题已解决。我只是安装了一台新的开发机器,仅安装了JRE并安装了JDK。


0

没有其他答案对我有用,但这确实做到了:

我从工作区中删除了项目,然后从项目文件夹中删除了所有以点开头的内容(.settings,.project等)。然后我重新导入了投影。我缺少一些设置和断点,但至少可以正常工作。


0

我一直遇到这个问题,直到将日志调用移到处理程序中,一切似乎都没有起作用。现在,无论您身在何处,它每次都能工作。



0

就我而言,我必须删除此行:

    <application
         android:debuggable="false"  <!-- Remove this line -->
         ..../>

来自清单文件中的Application标签。


0

对我来说最好的解决方案是重新启动 ADB 服务器(同时我已在Android Studio中启用了ADB集成-工具-Android-已选中)。为了快速执行此操作,我adbr.batandroid-sdk\platform-tools目录(adb.exe位于其中)中创建了文件,并在其中包含以下内容:

adb kill-server
adb start-server

因为我在PATH系统变量中有此文件夹,所以总是在我需要adb从Android Studio 重新启动时,只能将adbr其写入终端并完成。

这样做的另一个选项是通过Android设备监控设备选项卡-复位亚行-点击小箭头,右后菜单


0

对于日食:1)转到ddms透视图。2)确保选择了正确的设备。3)如果已经选择并且不显示日志,则重新启动ABD。*希望这能解决。


0

我也使用“ adb usb”重新启动了ADB服务,并为我解决了该问题。实际上,只有我的一项活动不再记录。所有其他人都记录日志。重新启动adb之后,一切再次恢复正常。对于正在寻找其他解决方案的其他人:adb kill-server,CLI中的adb start-server通常也可以解决您的问题。


0

使您的应用程序强制关闭,这将再次启动LogCat ...

用它来强制关闭:D

setContentView(BIND_AUTO_CREATE);

0

有时问题不是来自PC,另一方面是IDE,ADB等,而是由于您的设备未将日志发送到ADB而引起的,因此,如果您尝试了前面提到的所有方法,但logcat仍然为空,请尝试重新启动设备,然后重试


如何检查设备是否能够向ADB发送日志?
JCarlosR

@JCarlos如果上述解决方案均无效,请尝试重新启动设备
Code_Worm

当我使用Log并通过智能手机运行该应用程序时,AndroidMonitor会显示消息,但在我的智能手表上无法正常运行。我正在查看设置,但一切似乎都很好。
JCarlosR

0

我遇到了这个问题,并修复了没有空间的String TAG:

“ my tag” //注意显示
“ my_tag” //可以


0

就我而言,我只需要在字符串中添加一个名称即可。首先,我在方括号之间有一个空格

private static final String TAG = " ";

但添加名称后,效果很好。

private static final String TAG = "oncreate";

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.