Flutter 3.7.0在VS Code切换窗口时出现HIToolbox NSApplicationMain错误求助
Flutter VS Code调试时HIToolbox NSApplicationMain错误的解决方案
问题描述
在VS Code中调试Flutter应用时,每次在VS Code和应用窗口间切换焦点,都会弹出HIToolbox NSApplicationMain +817错误日志,持续滚动的日志严重干扰调试操作。该问题仅在VS Code中出现,Xcode调试无此现象,且在macOS和Windows系统上均存在,使用的是Flutter稳定通道3.7.0版本。
环境信息
Flutter 3.7.0 • channel stable • https://github.com/flutter/flutter.git Framework • revision b06b8b2710 (3 weeks ago) • 2023-01-23 16:55:55 -0800 Engine • revision b24591ed32 Tools • Dart 2.19.0 • DevTools 2.20.1
错误栈信息
1 HIToolbox 0x00007ff812d1b726 _ZN15MenuBarInstance22EnsureAutoShowObserverEv + 102 2 HIToolbox 0x00007ff812cbf852 SetMenuBarObscured + 226 3 HIToolbox 0x00007ff812cbf4ca _ZN13HIApplication15HandleActivatedEP14OpaqueEventRefhP15OpaqueWindowPtrh + 164 4 HIToolbox 0x00007ff812cb9996 _ZN13HIApplication13EventObserverEjP14OpaqueEventRefPv + 252 5 HIToolbox 0x00007ff812c81bd2 _NotifyEventLoopObservers + 153 6 AppKit 0x00007ff80c69e213 -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 3212 7 AppKit 0x00007ff80c6146ae -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 2595 8 AppKit 0x00007ff80c613a6f -[NSWindow(NSEventRouting) sendEvent:] + 345 9 AppKit 0x00007ff80c611dde -[NSApplication(NSEvent) sendEvent:] + 358 10 AppKit 0x00007ff80c8d0885 -[NSApplication _handleEvent:] + 65 11 AppKit 0x00007ff80c4a141c -[NSApplication run] + 623 12 AppKit 0x00007ff80c475427 NSApplicationMain + 817 13 bible_breeze 0x00000001034e0969 main + 9 14 dyld 0x00007ff808f57310 start + 2432 1 HIToolbox 0x00007ff812ca80c2 _ZN15MenuBarInstance22RemoveAutoShowObserverEv + 30 2 HIToolbox 0x00007ff812cbf7e3 SetMenuBarObscured + 115 3 HIToolbox 0x00007ff812cc629e _ZN13HIApplication11FrontUILostEv + 34 4 HIToolbox 0x00007ff812cbf622 _ZN13HIApplication15HandleActivatedEP14OpaqueEventRefhP15OpaqueWindowPtrh + 508 5 HIToolbox 0x00007ff812cb9950 _ZN13HIApplication13EventObserverEjP14OpaqueEventRefPv + 182 6 HIToolbox 0x00007ff812c81bd2 _NotifyEventLoopObservers + 153 7 HIToolbox 0x00007ff812cb93e6 AcquireEventFromQueue + 494 8 HIToolbox 0x00007ff812ca85a4 ReceiveNextEventCommon + 725 9 HIToolbox 0x00007ff812ca82b3 _BlockUntilNextEventMatchingListInModeWithFilter + 70 10 AppKit 0x00007ff80c4aff33 _DPSNextEvent + 909 11 AppKit 0x00007ff80c4aedb4 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1219 12 AppKit 0x00007ff80c4a13f7 -[NSApplication run] + 586 13 AppKit 0x00007ff80c475427 NSApplicationMain + 817 14 bible_breeze 0x00000001034e0969 main + 9 15 dyld 0x00007ff808f57310 start + 2432
解决方案
- 升级Flutter版本:这是最彻底的解决方式。该问题属于Flutter 3.7.0稳定版的引擎bug,后续稳定版本(如3.7.10及之后)已修复。执行命令升级到最新稳定版:
flutter upgrade - 过滤VS Code调试日志:如果暂时无法升级,可通过日志过滤屏蔽干扰信息:
- 在VS Code调试控制台右上角点击过滤图标,输入
-HIToolbox,直接排除所有包含HIToolbox的日志; - 或修改
.vscode/launch.json配置,限制日志级别为警告及以上:{ "version": "0.2.0", "configurations": [ { "name": "Flutter", "request": "launch", "type": "dart", "args": ["--log-level", "warning"] } ] }
- 在VS Code调试控制台右上角点击过滤图标,输入
- 切换通道临时验证:若想提前确认问题是否解决,可切换到beta或dev通道(这些通道更早修复了该bug):
测试完成后可切回稳定通道:flutter channel beta flutter upgradeflutter channel stable && flutter upgrade
内容的提问来源于stack exchange,提问作者Bible Breeze
相关产品推荐
相关产品推荐

