Logcat 不显示我的日志调用

Posted

技术标签:

【中文标题】Logcat 不显示我的日志调用【英文标题】:Logcat not displaying my log calls 【发布时间】:2011-05-12 20:01:17 【问题描述】:

我是 android 编程的菜鸟,想学习如何调试我的应用程序。我的 Log.i|d|v 调用似乎无法显示在 LogCat 中。

这是我正在使用的代码。如您所见,我已经定义了一个 LOG_TAG 常量,但似乎无法在 LogCat 中找到它。我还导入了 android.util.Log 并确保在我的 AndroidManifest 中将“可调试”设置为 TRUE。

我还检查了http://developer.android.com/reference/android/util/Log.html 没有任何运气解决这个问题。

我做错了什么?我什至找对地方了吗?我也尝试过使用 DDMS 和 Debug 透视图,但没有任何运气。对这个菜鸟的任何帮助将不胜感激。谢谢。

我的环境: 视窗 IDE = Eclipse 版本:3.6.1,构建 ID:M20100909-0800 模拟器 = 让它指向 android sdk 2.1 api 7

//带有几个 Log.i 调用的非常基本的 HELLO World 代码

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) 是的,试过命令行输出到txt文件还是找不到。我知道 Activity 已启动,因为我在模拟器中看到“Hello World”消息。我尝试使用和不使用过滤器查看 logcat,但仍然没有运气。 尝试命令行 adb logcat 并且不要先过滤任何东西。我很确定您的代码正在运行并打印到日志中。 LogCat 是否有效?例如。您是否看到来自其他应用程序(例如系统应用程序)的日志条目? 它可能是特定于设备的。我们有时需要从手机隐藏菜单启用日志***.com/a/43999262/2783229 【参考方案1】:

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

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

【讨论】:

是的,我也遇到过所有问题。如果您在 Logcat 视图中滚动,它不会随着未来的更新自动滚动,直到您滚动回底部。 哈!我为此奋斗了一段时间。打开 DDMS,我选择了一个旧的模拟器。为什么它不默认为当前运行的模拟器很奇怪。 ddewaele 的回答解决了我的问题,你只需要把 LogCat 放在它应该关注的地方。作为旁注,您无需更改视角即可调出设备菜单只需转到 Window>>Show View>> Other>> Android>> Devices 即可调出设备面板 @yock 我相信这是故意的,因为假设您想在滚动到的位置停下来阅读。 哈哈哈我太笨了,不知道DDMS是什么,也不知道去哪里找。【参考方案2】:

如果一切都失败了:

我做了以上所有的事情,无法弄清楚哪里出了问题,

测试:

adb logcat

要弄清楚我的条目实际上是在 logcat 中,但这是 adt 的怪癖。

修复:

重启eclipse

这是唯一修复它的东西。

【讨论】:

这可行,但我无法继续重新启动 Eclipse,因为这个问题对我来说经常发生。谁有更好的解决方案? @KhaledAlanezi 然后应该考虑从命令提示符或 windows powershell 使用 logcat(更好)。 每次发生这种情况时我都会重新启动eclipse,它总是可以解决问题。它通常每天发生一次,但我已经习惯了对日食感到失望.. @programmer 不再对 Eclipse 感到失望,我的朋友,转到 Android Studio :) 对我来说,在远程机器上使用模拟器重启 eclipse 不起作用 Logcat 从来不显示任何东西,但 adb logcat 是一个很好的提示,它的工作原理很赞。【参考方案3】:

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

【讨论】:

【参考方案4】:

重启Eclipse,会显示检查日志cat。

【讨论】:

【参考方案5】:

我发现我是在自动导入 com.sileria.Log(来自某个库项目)而不是 android.util.Log,后者是正确的.还要检查您的导入。

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

最简单的方法:

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

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

【讨论】:

【参考方案8】:

我需要用命令adb usb重启adb服务

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

【讨论】:

我也有这个 - 没有自己的日志行。但这没有帮助:(【参考方案9】:

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

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

【讨论】:

【参考方案10】:

在 Android Studio 上: 点击向右的绿色箭头重新开始记录;如果它不可见,请单击 >> 图标找到它。

【讨论】:

【参考方案11】:

我也是 Android-Eclipse 的新手。以下是我在 Eclipse 中显示 LogCat 消息的过程: 1:将此添加到调用logcat消息的类中: 私人静态最终字符串标签=“我的活动”; (根据文档here)

2: 添加这个 Log.i(TAG, "inLayout - finished");当你想在哪里显示消息时

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

它应该可以工作。

【讨论】:

【参考方案12】:

还有一件事需要注意:

logcat 的右上角有一个下拉列表,用于按类型过滤消息。确保它处于您正在寻找的级别(如果它处于断言级别,它可能会让您的 logcat 为空)。

【讨论】:

【参考方案13】:

请进入任务管理器并终止 adb.exe 进程。重新启动你的 Eclipse。

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

【讨论】:

【参考方案14】:

可能它不正确,而且有点长,但我通过使用这个解决了这个问题(Android Studio):

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

像这样:

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

【讨论】:

【参考方案15】:

我在这种情况下花了几个小时。我只看到了触摸键日志。而已。问题是......智能手机。重启后就OK了。断开电缆导致问题返回。不得不重新启动它。 看来 Android USB 通信设计得不好。

【讨论】:

谢谢!其实是手机快捷菜单上的USB设置……关于USB调试。我已经养成了从仅充电更改为传输文件的习惯。但是,仅充电是使日志记录工作的原因。几年后我才刚刚回到 Android 编程领域,这确实限制了我的学习曲线。 然后,我只得到了一些日志记录……最近添加的所有内容都被忽略了。在 Android Studio 中使用 Clean and Rerun 进行排序。【参考方案16】:

快速修复。

重启eclipse

完美运行。

【讨论】:

【参考方案17】:

使用 SDK 4.0.3,您必须在调试配置 > 项目 > 目标中明确选择它,否则它永远不会使用 Eclipse Indigo (3.7) 显示。当然会发生 Eclipse 重启。

【讨论】:

【参考方案18】:

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

【讨论】:

【参考方案19】:

其他答案都不适合我,但这确实有效:

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

【讨论】:

【参考方案20】:

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

【讨论】:

【参考方案21】:

我在 logcat 搜索框中输入了一个搜索词是错误的。 我忘了删除它,因此看不到新日志。因为它们与我的搜索词不匹配并且没有显示。

【讨论】:

【参考方案22】:

就我而言,我不得不删除这一行:

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

来自我的清单文件中的应用程序标记。

【讨论】:

【参考方案23】:

对我来说最好的解决方案是重新启动 adb 服务器(虽然我在 Android 工作室 - 工具 - Android 中启用了 ADB 集成 - 已选中)。为了快速做到这一点,我在android-sdk\platform-tools 目录(adb.exe 所在的位置)内创建了adbr.bat 文件,其中包含:

adb kill-server
adb start-server

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

执行此操作的另一个选项是通过 设备选项卡中的 Android 设备监视器 - 单击右小箭头后的菜单 - 重置 adb

【讨论】:

【参考方案24】:

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

【讨论】:

【参考方案25】:

我也使用“adb usb”重新启动了 ADB 服务并为我解决了问题。事实上,我只有一项活动不再记录。所有其他人都记录了一些东西。重新启动 adb 后,一切都再次像魅力一样工作。对于正在寻找其他解决方案的其他人:adb kill-server,CLI 中的 adb start-server 通常也可以解决您的问题。

【讨论】:

【参考方案26】:

让您的应用强制关闭一次 这将再次启动 LogCat ...

用它来强制关闭:D

setContentView(BIND_AUTO_CREATE);

【讨论】:

【参考方案27】:

有时问题不是来自 pc,另一方面是 IDE、ADB 等,但它来自您的设备,它不会向 ADB 发送日志,所以如果您尝试了前面提到的所有方法并且您的 logcat 仍然是空的尝试重新启动您的设备并重试。我尝试了上面提到的所有方法,但它们都没有奏效,但在我的手机重新启动后 logcat 就像魔术一样工作

【讨论】:

如何查看设备是否可以向ADB发送日志? @JCarlos 如果上述解决方案均无效,请尝试重新启动您的设备 当我使用Log 并从我的智能手机运行该应用程序时,AndroidMonitor 会显示消息,但它在我的智能手表上不起作用。我正在查看设置,但一切似乎都很好。【参考方案28】:

我有这个问题并已修复,String TAG 没有空格:

“我的标签”//注意显示 "my_tag" // 没问题

【讨论】:

【参考方案29】:

在我的例子中,我只需要为字符串添加一个名称。在第一种情况下,我只是在括号之间有一个空格

private static final String TAG = " ";

但在添加名称后它工作得很好。

private static final String TAG = "oncreate";

【讨论】:

【参考方案30】:

升级到 Android 3.6.1 后,我多次遇到此问题。 在我的情况下唯一有效的是重新启动设备。

【讨论】:

以上是关于Logcat 不显示我的日志调用的主要内容,如果未能解决你的问题,请参考以下文章

LogCat 不会显示我的日志

Android Studio突然在Logcat中显示太多日志[关闭]

如何在 IntelliJ 的 logcat 中仅过滤我的应用程序日志? [复制]

改造响应主体提交返回 null,但日志拦截器在 logcat 中显示完整响应

Logcat 未显示设备日志,但显示模拟器 eclipse ADT 的日志

Android Logcat:在 10 分钟或更长时间后重新插入手机后显示我的应用程序的日志消息?