Logcat日志警告/错误

4
当我通过 ADB 连接我的 Galaxy S3 Mini 并尝试使用 Android Studio 调试应用程序时,logcat 中会不断出现错误/警告消息,信息不停地疯狂输出。这正常吗?通常情况下,使用模拟器时我不会在 logcat 中得到大量的消息。如何解决这个问题?这是 logcat 的样子 http://pastebin.com/JaVhYaCt 或者 http://i.imgur.com/aaavMZm.png?1
顺便说一句:我仍然能够测试应用程序。

哪一行被垃圾邮件了?你的链接很难读。 - Ilya Gazman
我更新了问题。已添加截图。 - dovydas juraska
这并没有帮助,我不知道哪些是你的信息,哪些是垃圾邮件。或者它们只是随机的,你自己也无法分辨。 - Ilya Gazman
有太多了,很难辨别。例如日志中的此类消息:12-22 15:30:01.580 1660-2127/? W/FrameworkListener﹕处理程序“接口”错误(没有这样的设备) - dovydas juraska
2个回答

5

这正常吗?

是的 - 系统本身以及每个应用程序都使用日志记录,这就是您看到的内容。一个基本的模拟器不会有许多带有接收器和服务的应用程序运行,因此您将不会看到相同数量的日志记录。

我该如何解决这个问题?

你不能完全解决它,但你可以通过从设备上的“设置”中强制关闭各种应用程序来减少它。这不一定是一个好主意,但这是你的选择。

您可以通过在代码中使用包TAGs,然后应用过滤器仅显示具有您的TAGs的logcat数据来改善情况。

例如...

package com.mycompany.mypackage

public class MyActivity extends Activity {

    protected final String TAG = getClass().getName();

}

在上面的代码中,TAG 将会是 "com.mycompany.mypackage.MyActivity"。使用 protected 作为修饰符,这样任何继承了 MyActivity 的类都会自动将它们自己的类名赋值给 TAG
在记录日志时,你只需要使用 `Log.d(TAG, "Some text");`。
然后你只需要过滤 "com.mycompany.mypackage" 来仅查看来自自己应用程序组件的日志记录。

谢谢,这就是我想知道的。 - dovydas juraska
Android Studio提供了相同的功能,不需要在代码上方编写。 - LiangWang
@Jacky:嗯?你想进一步解释那个评论吗? - Squonk

1

最简单的答案是,看到所有这些冗长的日志记录是正常的(logcat包含手机上的所有信息,因此可能会变得非常冗长)。

您可以通过使用过滤器来过滤在logcat中显示的内容。如果使用命令行,它可能看起来像这样(不要忘记结尾的S:*-表示“静音”所有内容。一个简单的标签过滤器从命令行可能看起来像这样(仅显示具有标签SHOWTAG1和SHOWTAG2的消息:

adb logcat SHOWTAG1:* SHOWTAG2:* S:*

Eclipse 工具(也许是 Android Studio,不确定)还有一个 Logcat 查看器,允许您应用标签进行过滤,或者使用正则表达式或其他过滤机制来修改所显示的内容。
总之,Logcat 很冗长,您需要特别过滤才能看到想要的内容。

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