华为手机的logcat没有显示我的应用程序日志?

179

好的,logcat可以显示系统日志,但在我的华为Ascend上无法显示应用程序日志。 如果我切换到另一个设备,例如我的Galaxy Nexus或Nexus 7,则相同的应用程序(甚至相同的APK)的日志将被显示。

Huawei Ascend运行Android 4.1.1,在开发者选项中打开USB调试。 从命令行或IntelliJ运行的logcat都会出现此问题。 我确保选择正确的设备-事实上,我每次只插入一个设备。我已尝试重新启动adb,清除其缓冲区等

我可以看到该应用程序正在华为上启动,甚至可以看到系统日志显示Activity已启动。 但与其他设备不同的是,我在Activity#onCreate(或其他任何地方)中没有看到应用程序日志。

08-08 20:55:44.050: INFO/WindowManager(431): Switching to real app window: Window{41ae8780 au.com.xandar.wirelesstiming.timekeeper/au.com.xandar.wirelesstiming.timekeeper.TimeKeeperActivity paused=false}
08-08 20:55:44.180: INFO/ActivityManager(431): Displayed au.com.xandar.wirelesstiming.timekeeper/.TimeKeeperActivity: +387ms

应用程序日志为什么无法传送?


也许您已经在LogCat输出中应用了特定的过滤器-去检查一下。 - g00dy
@CamilStaps 这个问题在其他地方没有得到解答,因此它帮助的人数相对较少。 - William
@CamilStaps 请阅读这两个问题。这个“问题”还没有在其他地方被提出过。 - William
对于魅族手机 https://dev59.com/t2Mm5IYBdhLWcg3wDrpR#42822508 - Fortran
这个解决方案对我起作用了 https://dev59.com/mFgQ5IYBdhLWcg3wfT9R - surhidamatya
显示剩余4条评论
9个回答

488

好的,由于我有另一部华为Ascend手机,我遇到了同样的问题。这次我有确切的答案。请按照以下说明操作(来自denispyr在为什么我的Android上没有显示任何logcat?的回答)

Dial

*#*#2846579#*#*

and you will see a hidden menu. Go to the Project Menu > Background Setting > Log setting and define the log availability (log switch) and level (log level setting).

请注意,这可能只适用于华为手机。确保重新启动您的手机。

还要注意,如果您使用的是华为平板电脑(例如MediaPad M3),则不需要拨号,而是在横向模式下启动华为计算器并输入()()2846579()()


48

适用于华为 Android 8.0+ 版本

我们需要拨打以下代码:*#*#2846579#*#*

然后选择AP 日志选项即可在 LogCat 中显示消息。

在此处输入图像描述


13

如果任何人拥有乐视手机(LeEco Le Max 2或1),上述解决方法将不起作用。请尝试以下USSD代码。参见图1。

Press Dialer *#*#76937#*#*

选择 "启用所有日志"

图1


这在华为ECO手机上无法使用。有什么提示吗? 型号:LUA-L23 - charlesfranciscodev
@charlesfranciscodev,你尝试过*##2846579##*吗?如上面的答案所提到的。 - Nitesh Tiwari
谢谢。正在使用乐视 X527 进行工作。 - Aleksey_M

9

不要使用

Log.d(TAG, msg);

试试这个。

Log.wtf(TAG, msg);

为我工作。

谢谢,这在我的华为ECO手机上有效! - charlesfranciscodev
Log.wtf() is designed to a totally unexpected state. It is akin to SEVERE. It is certainly not DEBUG - William
2
我认为Log.e()/Log.w()/Log.i()也非常好用。 - Fortran

4

我有一部HUAWEI Y3 II,也叫LUA-L21

被接受的答案对我没用。它导致了一个MTKLogger设置屏幕,这与答案中描述的不同,并没有帮助。

我的解决方案

  1. 拨打*#*#2846580#*#*(请注意,此代码与被接受的答案中的代码不同)
  2. 你刚刚进入了一个名为EngineerMode的设置屏幕(再次强调,不同于被接受答案中的ProjectMenu
  3. 在第一个Telephony选项卡中,点击Log Control项目
  4. 同时激活两个开关(将Mtklog control设置为catch all log,将adb radio log设置为catch radio log by adb
  5. 回到上一个屏幕,在Log and Debugging选项卡中滑动
  6. 打开Debug Utils
  7. Debug LevelUser Mode更改为Engineer Mode
  8. 为了保险起见,重新启动您的手机

屏幕截图

更改Log control

enter image description here enter image description here

更改Debug utils

enter image description here enter image description here

额外说明

只是为了澄清我的原始问题;logcat显示了一些我应用程序的日志条目,只是没有显示我自己的消息 - 我看到了属于我的进程com.example.myapp的条目,但从我的代码中使用Log.d("TAG", "hello world");打印出来的任何内容都没有出现。

有很多这样的东西:

4260-4270/com.example.myapp I/art: Debugger is no longer active
4260-4412/com.example.myapp I/System.out: [CDS]rx timeout:1
4260-4412/com.example.myapp D/NativeCrypto: doing handshake ++
4260-4603/com.example.myapp D/OpenGLRenderer: Flushing caches (mode 0)
4260-4603/com.example.myapp D/Surface:  Surface::disconnect(this=0xb85285d8,api=1)
4260-4260/com.example.myapp D/ActivityThread: ACT-STOP_ACTIVITY_HIDE handled : 0 / android.os.BinderProxy@2333cbdf

但从未遇到过这样的情况:

4260-4603/com.example.myapp D/MainActivity: hello from onCreate!

上述步骤对我解决了这个问题。

1
对于华为CRO-L22和其他一些搭载MTK芯片的华为手机,工程模式的代码是*##14789632##*。 - Dmytro Turkov
谢谢!##14789632## 在 Y5 Lite (CRO-L03) 上可用。 - Talu

4

一些新款华为手机(我使用的是 Y9s 2019)的设置有所更改。

现在的流程是:

拨号 *#*#2846579#*#*

背景设置 -> AP 日志设置 -> 开启。

如果您仍然无法看到日志,请同时重启您的手机和 Android Studio/Eclipse。


1
Open your Dialer app and enter the following code: *#*#2846579#*#*.

    1-Enter the Background Settings page.
    2-Click on “Log Settings”
    3-Check all 3 options to enable full logging.
    4-Ignore the "will affect performance" warning.
    5-Reboot the phone.

0

尝试在您的设备上下载一个Logcat应用程序(例如aLogCat),看看是否遇到了同样的问题。我知道这不是完整的解决方案,但通过阅读应用程序日志,您可能可以找出出现问题的原因。


1
这个在4.x.x及以上版本的系统日志上不起作用,只适用于具有“READ_LOGS”权限设置的具体应用程序日志 - https://code.google.com/p/alogcat/issues/detail?id=41。 - g00dy

-3

尝试这个:

在Eclipse编辑器中:

从Windows -> 设备重置adb,然后再试一次...

请检查您的项目是否以绿色突出显示(只需选择您的项目名称)


2
正如我之前所说,我使用命令行或IntelliJ中的logcat。我不使用Eclipse。其次,正如我之前也提到的,我已经尝试过多次重置adb。 - William

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