通过 logcat 在 Android 上调试 WebView (Ionic) 应用程序
Debugging a WebView (Ionic) app on Android via logcat
关于这个主题有几个问题,但似乎没有一个能解决我遇到的特定问题。
我正在使用 Cordova/Ionic 开发一个应用程序,并且使用 adb logcat CordovaLog:D *:S
打印我使用 console.log()
输出的调试信息在某些更新之前工作正常。现在我似乎不知道如何正确过滤 logcat 的输出,所以我只能从我的应用程序中获取调试信息。
记录本身有效。如果我没有设置过滤器并将输出重定向到一个文件,我可以在所有其他调试消息中看到我的调试信息,它看起来像这样:
I/Web Console: Event triggered: device.ready:1
记录到屏幕也可以,但速度大约为每秒 100 行。我至少尝试了以下方法来过滤输出:
adb logcat -s "Web Console"
adb logcat "Web Console":V
adb logcat "Web Console":*
adb logcat -s Web
adb logcat Web:V
adb logcat "myApp":V
adb logcat myApp:V
adb logcat -s myApp
...可能还有其他我已经忘记的内容。他们要么完全不打印任何东西,要么完全打印系统服务中的所有内容。
我在 Windows 所以我不能 grep
,我正在调试的设备是 运行 Android 4.2.2 所以我可以不使用 GapDebug,似乎也无法通过 Chrome 中的 chrome://inspect
访问设备的日志。
我真的非常想了解过滤 logcat 的输出是如何工作的。我不愿意将所有内容都记录到一个文件中,然后再进行切换。
似乎 logcat
无法正确解析带有空格的标签名称。因此,我建议在设备上使用 grep
:
adb shell "logcat | grep 'Web Console'"
或者在 linux 或基于 unix 的 os/git 上运行 adb bash:
adb logcat | grep 'Web Console'
虽然您可以在 Linux/Unix 下使用 grep
,但在 Windows 下您可能会选择 findstr
:
adb logcat | findstr /C:"Web Console"
如果您更喜欢在 Windows 下使用 grep
,您可以从
http://gnuwin32.sourceforge.net/packages/grep.htm.
2019 年对我有用的东西:
adb -d logcat chromium:I *:S
-d
表示在我的情况下是物理设备。如果所有其他方法都失败了,只需将 adb logcat
的结果转储到文本文件中并搜索 "CONSOLE",这将为您提供 logcat 过滤器的提供程序。这似乎会随着时间的推移而变化,并且取决于您的特定开发环境。
关于这个主题有几个问题,但似乎没有一个能解决我遇到的特定问题。
我正在使用 Cordova/Ionic 开发一个应用程序,并且使用 adb logcat CordovaLog:D *:S
打印我使用 console.log()
输出的调试信息在某些更新之前工作正常。现在我似乎不知道如何正确过滤 logcat 的输出,所以我只能从我的应用程序中获取调试信息。
记录本身有效。如果我没有设置过滤器并将输出重定向到一个文件,我可以在所有其他调试消息中看到我的调试信息,它看起来像这样:
I/Web Console: Event triggered: device.ready:1
记录到屏幕也可以,但速度大约为每秒 100 行。我至少尝试了以下方法来过滤输出:
adb logcat -s "Web Console"
adb logcat "Web Console":V
adb logcat "Web Console":*
adb logcat -s Web
adb logcat Web:V
adb logcat "myApp":V
adb logcat myApp:V
adb logcat -s myApp
...可能还有其他我已经忘记的内容。他们要么完全不打印任何东西,要么完全打印系统服务中的所有内容。
我在 Windows 所以我不能 grep
,我正在调试的设备是 运行 Android 4.2.2 所以我可以不使用 GapDebug,似乎也无法通过 Chrome 中的 chrome://inspect
访问设备的日志。
我真的非常想了解过滤 logcat 的输出是如何工作的。我不愿意将所有内容都记录到一个文件中,然后再进行切换。
似乎 logcat
无法正确解析带有空格的标签名称。因此,我建议在设备上使用 grep
:
adb shell "logcat | grep 'Web Console'"
或者在 linux 或基于 unix 的 os/git 上运行 adb bash:
adb logcat | grep 'Web Console'
虽然您可以在 Linux/Unix 下使用 grep
,但在 Windows 下您可能会选择 findstr
:
adb logcat | findstr /C:"Web Console"
如果您更喜欢在 Windows 下使用 grep
,您可以从
http://gnuwin32.sourceforge.net/packages/grep.htm.
2019 年对我有用的东西:
adb -d logcat chromium:I *:S
-d
表示在我的情况下是物理设备。如果所有其他方法都失败了,只需将 adb logcat
的结果转储到文本文件中并搜索 "CONSOLE",这将为您提供 logcat 过滤器的提供程序。这似乎会随着时间的推移而变化,并且取决于您的特定开发环境。