Logcat不会显示Log.d消息

时间:2013-07-28 12:01:36

标签: android logcat android-4.2-jelly-bean

我正在开发一个Android应用程序,我希望有一些方法可以在我的代码运行时打印调试语句。幸运的是,当我在Android 2.3.3(API 10)模拟器上运行我的应用程序时,Logcat能够打印出Log.d消息。

然而,当我在物理设备(Samsung Galaxy S4 Android 4.2.2)上测试相同的应用程序时,除了dalvikvm和AndroidRuntime消息之外我什么都看不见。

com.android.internal.os.RuntimeInit <<<<<<
07-28 04:49:24.165: DEBUG/AndroidRuntime(6378): CheckJNI is OFF
07-28 04:49:24.165: DEBUG/AndroidRuntime(6378): setted country_code = USA
07-28 04:49:24.165: DEBUG/AndroidRuntime(6378): setted countryiso_code = US
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): setted sales_code = VZW
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): readGMSProperty: start
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): readGMSProperty: already setted!!
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): readGMSProperty: end
07-28 04:49:24.175: DEBUG/AndroidRuntime(6378): addProductProperty: start
07-28 04:49:24.185: DEBUG/dalvikvm(6378): Trying to load lib libjavacore.so 0x0
07-28 04:49:24.185: DEBUG/dalvikvm(6378): Added shared lib libjavacore.so 0x0
07-28 04:49:24.195: DEBUG/dalvikvm(6378): Trying to load lib libnativehelper.so 0x0
07-28 04:49:24.195: DEBUG/dalvikvm(6378): Added shared lib libnativehelper.so 0x0
07-28 04:49:24.385: DEBUG/AndroidRuntime(6378): Calling main entry com.android.commands.pm.Pm
07-28 04:49:26.978: DEBUG/AndroidRuntime(6378): Shutting down VM
07-28 04:49:26.988: DEBUG/dalvikvm(6378): GC_CONCURRENT freed 157K, 21% free 627K/788K, paused 1ms+0ms, total 4ms
07-28 04:49:26.988: DEBUG/jdwp(6378): Got wake-up signal, bailing out of select
07-28 04:49:26.988: DEBUG/dalvikvm(6378): Debugger has detached; object registry had 1 entries
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): CheckJNI is OFF
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): setted country_code = USA
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): setted countryiso_code = US
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): setted sales_code = VZW
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): readGMSProperty: start
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): readGMSProperty: already setted!!
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): readGMSProperty: end
07-28 04:49:27.458: DEBUG/AndroidRuntime(6420): addProductProperty: start
07-28 04:49:27.468: DEBUG/dalvikvm(6420): Trying to load lib libjavacore.so 0x0
07-28 04:49:27.478: DEBUG/dalvikvm(6420): Added shared lib libjavacore.so 0x0
07-28 04:49:27.478: DEBUG/dalvikvm(6420): Trying to load lib libnativehelper.so 0x0
07-28 04:49:27.478: DEBUG/dalvikvm(6420): Added shared lib libnativehelper.so 0x0
07-28 04:49:27.649: DEBUG/AndroidRuntime(6420): Calling main entry com.android.commands.am.Am
07-28 04:49:27.659: DEBUG/dalvikvm(6420): Note: class Landroid/app/ActivityManagerNative; has 169 unimplemented (abstract) methods
07-28 04:49:27.719: DEBUG/AndroidRuntime(6420): Shutting down VM
07-28 04:49:27.729: DEBUG/dalvikvm(6420): GC_CONCURRENT freed 157K, 20% free 666K/828K, paused 0ms+1ms, total 3ms
07-28 04:49:27.729: DEBUG/jdwp(6420): Got wake-up signal, bailing out of select
07-28 04:49:27.729: DEBUG/dalvikvm(6420): Debugger has detached; object registry had 1 entries

我不确定发生了什么,因为Logcat正确定位到我的物理设备,它出现在adb设备上,并且USB调试已开启。

我尝试过使用Log.e,但这对输出没有影响。

我甚至在AndroidManifest.xml中设置了android:debuggable =“true”。

这里有什么我想念的吗?为什么在物理设备上运行我的应用程序时Logcat不会显示我的调试消息?

编辑:我在Android 4.2.2模拟器上尝试了相同的应用程序,Logcat按照预期的方式与模拟器一起工作,但Logcat仍然存在通过USB设备的问题。而不是普通Logcat打印输出的详细程度,我发布的块是我在详细日志级别上看到的唯一内容。

6 个答案:

答案 0 :(得分:30)

可能是因为某些手机禁用了日志来提升性能。

例如,我的手机HUAWEI P9 lite,我必须执行以下步骤才能使Log.d正常工作:

  1. 拨打*#*#2846579#*#*
    • 号码可能会有所不同,您应该进行一些搜索以获取手机密码。
  2. ProjectMenu页面
  3. 点击Background Settings
  4. 点击LOG Settings
  5. 检查AP Log
  6. 由于未知原因,它会在重新打开LOG Settings时自动检查所有日志。
  7. enter image description here

    <强> [UPDATE]

    刚从git中取出后再次发生,adb shell显示了这一点:

    open '/dev/hwlog_switch' fail -1, 13. Permission denied
    log switch off, only log_main and log_events will have logs!
    

    我使用新项目测试它得到了日志,只有这个旧项目有问题。我尝试重建应用程序,重新启用上面的日志步骤,甚至重新启动手机,但仍然没有运气。

    然后我卸载应用(或所有相关的productFlavors应用)并重新安装,日志又回来了。

答案 1 :(得分:10)

在某些型号上,您必须转到开发者选项,然后选择&#34;允许所有&#34;,在&#34;高级日志记录&#34;。

以下截图来自我的Meizu MX 4 Pro:

enter image description here

答案 2 :(得分:1)

今天,我遇到了同样的问题。没有什么比我提到的解决方案更有用但对我来说有用的是Android Studio右侧底部,如图中所示。选择图像中提到的选项。之后一切都按预期工作。现在发布我的解决方案可能有助于其他人。

enter image description here

希望能帮助他人

答案 3 :(得分:0)

您是否为logcat启用了USB调试? (如果您的物理设备通过USB电缆连接)。转到“设置”,然后“应用程序”,然后“开发”,然后选中“USB调试”。

然后它应该出现在DDMS中。只需选择它即可调试/查看日志。

答案 4 :(得分:0)

也许不是答案,但需要展示照片。尝试为您的TAG设置过滤器:

enter image description here

并选择详细选项:

enter image description here

这有帮助吗?

答案 5 :(得分:0)

您需要通过adb shell设置日志记录(达到所需级别),如下所示:

  1. 导航到android sdk文件夹中的platform-tools。
  2. 使用./adb shell为linux / mac / windows powershell打开adb shell,或者只为{+ 1}}打开windows cmd。
  3. 发出以下命令:

    adb shell