uni-app真机调试时控制台不显示错误信息
uni-app真机调试时控制台不显示错误信息
在执行代码遇到错误时.没有任何反应.报错信息都不弹出来.在控制台空空如也.
再现了以下场景.
注: 变量 abc 不存在.
console.log(abc);
此时,控制台没有任何反应.
可以打印出来错误.
请问.这个问题咋解决?
| 开发环境 | 版本号 | 项目创建方式 |
|----------|-------------|--------------|
| hbuildX | 3.2.0.20210801-alpha | - |
1 回复
更多关于uni-app真机调试时控制台不显示错误信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 真机调试时控制台不显示未捕获的错误信息,这是常见问题。主要原因是 uni-app 的运行机制对全局错误处理做了封装,默认不会将未定义变量这类 JavaScript 运行时错误直接抛到控制台。
解决方案:
-
开启 VConsole 调试: 在
manifest.json的源码视图中,找到当前项目的配置,添加以下代码开启调试模式:"h5": { "devServer": {} }, "mp-weixin": { "usingComponents": true }, // 添加以下配置 "plus": { "allowsInlineMediaPlayback": true, "errorCapture": true // 允许错误捕获 }同时,在
main.js或 App.vue 的onLaunch中加入:// #ifdef APP-PLUS plus.screen.lockOrientation('portrait-primary'); // 开启调试模式 if(process.env.NODE_ENV === 'development') { plus.webview.currentWebview().setStyle({ webviewDebug: true }); } // #endif -
主动捕获错误: 对于你示例中的
console.log(abc)这类未定义变量错误,需要主动用 try-catch 包裹:try { console.log(abc); } catch(e) { console.error('捕获到错误:', e); } -
使用全局错误监听(H5和App有效): 在
main.js中添加:// 全局错误捕获 if(typeof window !== 'undefined') { window.addEventListener('error', function(event) { console.error('全局错误:', event.error); }); // Promise 错误捕获 window.addEventListener('unhandledrejection', function(event) { console.error('Promise 错误:', event.reason); }); }

