Flutter Windows桌面Release版.exe无法启动问题求助
解决Flutter Windows Release版可执行文件后台运行但无窗口的问题
排查杀毒软件拦截
第三方杀毒或Windows Defender常误判Flutter生成的Release程序,导致窗口被拦截。可临时关闭杀毒软件,或把build\windows\runner\Release目录加入信任列表后重试。手动补充依赖DLL文件
Flutter的Windows Release构建偶尔会遗漏核心依赖文件,从flutter\bin\cache\artifacts\engine\windows-x64-release目录下,复制flutter_windows.dll、icudtl.dat到Release文件夹(和.exe同目录),再启动程序。修改Runner项目编译配置看错误日志
- 用Visual Studio打开
windows\runner\Runner.sln - 切换到Release模式,右键Runner项目选属性
- 进入链接器 -> 系统,把子系统从
Windows (/SUBSYSTEM:WINDOWS)改为Console (/SUBSYSTEM:CONSOLE) - 重新构建后运行.exe,控制台会输出错误日志,直接定位问题根源
- 用Visual Studio打开
升级Flutter版本
v3.7.8的Windows Release构建存在已知的窗口渲染兼容问题,升级到v3.10+稳定版大概率解决问题,执行命令:flutter upgrade升级后依次执行
flutter clean和flutter build windows --release再测试。检查显卡驱动或强制关闭硬件加速
Windows Release版默认开启硬件加速,过时/不兼容的显卡驱动会导致窗口无法渲染:- 优先更新显卡驱动
- 若更新无效,在
windows\runner\win32_window.cpp的CreateAndShow方法中,添加以下代码强制关闭硬件加速:// 在CreateWindowEx代码之后添加 SetWindowLongPtr(hwnd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this)); SetLayeredWindowAttributes(hwnd, 0, 255, LWA_ALPHA);
重新构建Release版本即可。
内容的提问来源于stack exchange,提问作者David Larsson
相关产品推荐
相关产品推荐

