【问题标题】:console.log browser in android emulatorandroid模拟器中的console.log浏览器
【发布时间】:2011-04-26 19:16:28
【问题描述】:

如何使用android模拟器查看网站的console.log消息?

【问题讨论】:

    标签: android-emulator console.log


    【解决方案1】:

    您可以临时添加一些 JavaScript,例如...

    var console = {
        log: function(msg) { alert(msg); }
    };
    

    丑得要命,但它确实有效。

    【讨论】:

      【解决方案2】:

      来自 Rich Chetwynd 的短文《Android 浏览器上的 Javascript 调试》。

      您可以从 Android 设备或模拟器记录 javascript 错误和控制台消息。为此,您首先需要安装 Android SDK 和 USB 驱动程序并在实际设备上启用 USB 调试。

      要检查设备是否连接正确,您可以从 Android SDK 工具目录运行以下 cmd,您应该会在列表中看到一个设备

      c:\android sdk..\platform-tools\adb devices

      然后,您可以使用 Android Debug Bridge 过滤调试消息,以便通过运行以下 cmd 仅查看与浏览器相关的消息。

      c:\android sdk..\platform-tools\adb logcat browser:V *:S

      默认情况下,日志会写入标准输出,因此您会看到任何 Javascript 错误或 console.log 消息等写入 cmd 窗口。

      更多详情:Logcat CLI tool docs

      【讨论】:

      • 我明白了 - running logcat browser:V *:S 似乎为我输出了所有日志,我必须通过管道将其传送到 grep 以获取相关日志。
      • linux框下:cd ~/eclipse/adt-bundle-linux-x86_64-20140702/sdk/platform-tools; ./adb logcat browser:V *:S | sed 's/^.*Console: \(.*\) [^ ]*/\1/'
      • 我必须在 API 21 上使用 adb logcat chromium:V *:S
      • zsh: no matches found: *:S
      • 我在页面底部添加了从模拟器获取日志的命令
      【解决方案3】:

      如果您从Eclipse 使用ADT plugin 启动模拟器,您将在LogCat 视图下直接看到所有JavaScript 控制台日志:

      Window -> Show View -> Android -> LogCat
      

      【讨论】:

        【解决方案4】:

        我使用以下代码劫持了 console.log:

        function logManager() {
            var self = this;
        
            self.init = function () {
                console.log('logmanager initialized');
                var old = console.log;
                self.logger = document.getElementById('log');
                console.log = function (message, options) {
                    if (typeof message == 'object') {
                        self.logger.innerHTML = (JSON && JSON.stringify ? JSON.stringify(message) : message) + '<br />' + self.logger.innerHTML;
                    } else {
                        self.logger.innerHTML = message + '<br />' + self.logger.innerHTML;
                    }
                }
            }
            self.toggleLogVisibility = function () {
                return $(self.logger).toggle();
            };
        }
        

        并在您的 html 中使用您自己的样式使用它(绝对右上角是我使用的)

        <div id="log" class="log">
            Application loaded...
        </div>
        

        在你的 jscript 中(在加载的页面上运行这个,因为日志元素必须存在)

        document.lmgr = new logManager();
        document.lmgr.init();
        

        【讨论】:

          【解决方案5】:

          如果您使用的是 Android Studio;您可以打开 Logcat (Alt+6) 并过滤::CONSOLE

          仅过滤:CONSOLE(而不是INFO:CONSOLE)将显示所有类型的控制台消息(包括错误、警告等)。

          【讨论】:

            【解决方案6】:

            命令 - 从模拟器获取日志

            adb -e logcat 
            

            adb.exe 位于 $your_installation_path$\android sdk\platform-tools

            更详细 https://docs.microsoft.com/ru-ru/xamarin/android/deploy-test/debugging/android-debug-log?tabs=windows

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-11-30
              • 1970-01-01
              • 1970-01-01
              • 2012-06-28
              • 1970-01-01
              • 2011-03-06
              相关资源
              最近更新 更多