如何使用安卓模拟器查看网站的
console.log
消息?
来自 Rich Chetwynd 的短文“Android 浏览器上的 Javascript 调试”。
您可以从您的 Android 设备或模拟器记录 javascript 错误和控制台消息。为此,您首先需要安装 Android SDK 和 USB 驱动程序,并在实际设备上启用 USB 调试。
要检查设备是否正确连接,您可以从 Android SDK 工具目录运行以下命令,您应该会在列表中看到一个设备
c:\android sdk..\platform-tools\adb devices
然后您可以使用 Android Debug Bridge 来过滤调试消息,这样您就可以通过运行以下 cmd 只看到与浏览器相关的消息。
c:\android sdk..\platform-tools\adb logcat browser:V *:S
默认情况下,日志会写入 stdout,因此您会看到任何 Javascript 错误或 console.log 消息等写入 cmd 窗口。
更多细节:Logcat CLI 工具文档.
如果您使用
Eclipse
从 ADT plugin
启动模拟器,您将直接在 LogCat 视图下看到所有 JavaScript
控制台日志:
Window -> Show View -> Android -> LogCat
如果你使用的是Android Studio;你可以打开你的 Logcat (Alt+6) 并过滤:
:CONSOLE
仅过滤
:CONSOLE
(而不是INFO:CONSOLE
)将显示所有类型的控制台消息(包括错误、警告等)。
您可以临时添加一些 JavaScript,例如...
var console = {
log: function(msg) { alert(msg); }
};
丑陋到地狱,但它有效。
我使用这段代码劫持了 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();
在您的 chrome 上打开此网址
铬://检查
命令 - 从模拟器获取日志
adb -e logcat
adb.exe 可以在 $your_installation_path$ ndroid sdk\platform-tools 找到
如果你因为zsh不能运行
adb logcat browser:V *:S
,你需要运行noglob adb logcat browser:V *:S
。理由:https://github.com/ohmyzsh/ohmyzsh/issues/2901