一、release包运行包程序崩溃 C:\WINDOWS\SYSTEM32\MSVCP140.dll
这通常是由于缺少 Microsoft Visual C++ 运行时库导致的。
解决方法:
-
安装 Microsoft Visual C++ 运行时库:
- 访问 Microsoft 官方下载中心 下载并安装适用于您系统的 Visual C++ 运行时库。
- 安装后,重启计算机,然后尝试再次运行您的程序。
-
将缺失的 DLL 文件包含在您的应用程序中:
- 在开发机器上,从
C:\WINDOWS\SYSTEM32目录中找到MSVCP140.dll文件。 - 将该文件复制到您的项目的
windows目录中。 - 在项目的
windows/CMakeLists.txt文件中,添加以下内容:
- 在开发机器上,从
install(FILES "MSVCP140.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" CONFIGURATIONS Profile;Release COMPONENT Runtime)
- 重新编译您的应用程序。
- 在打包应用程序时,确保将
MSVCP140.dll文件包含在内。
请注意,直接将 DLL 文件包含在应用程序中可能会导致版本兼容性问题。因此,建议优先安装 Visual C++ 运行时库,以确保系统上有正确的运行时环境。
如果问题仍然存在,建议检查您的开发环境配置,确保所有必需的依赖项都已正确安装。
二、build release包双击打开后不显示窗口,但是有后台进程
一种说法是改项目下的windows项目下,runner下的flutter_window.cpp文件:
flutter_controller_->engine()->SetNextFrameCallback([&]() {
this->Show();
});
改为
this->Show();
但是我改完后窗口是能出来,但是一直是空白窗口。
我的文件解决办法是把sqlite3.dll文件放到打包的目录下build\windows\x64\runner\Release\,放进去后程序就能双击打开,参考https://stackoverflow.com/questions/75837229/flutter-windows-app-does-not-start-in-release-mode
三、flutter运行或打包windows平台报错C4819,utf8编码问题
在windows项目中的CMakeList.txt中添加
add_compile_options(/wd4819)
忽略 C4819 警告
四、使用desktop_multi_window创建子窗口后调用一些插件报错MissingPluginException
需要在子窗口重新注册相关插件,通常这些插件都是调用原生的一些属性,
注册方法是在windows/runner/flutter_window.cpp中添加代码
DesktopMultiWindowSetWindowCreatedCallback([](void *controller) {
auto *flutter_view_controller =
reinterpret_cast<flutter::FlutterViewController *>(controller);
auto *registry = flutter_view_controller->engine();
WindowManagerPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("WindowManagerPlugin"));
});
在Callback回调中添加插件注册,例如windowManager插件,WindowManagerPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("WindowManagerPlugin"));
同时要加引用
#include <window_manager/window_manager_plugin.h>
五、 windows包安装报错 找不到VCRUNTIME140_1.dll文件
这个错误通常是因为你的Windows系统缺少某些必需的运行时库,特别是Visual C++ Redistributable for Visual Studio 2015, 2017, and 2019。VCRUNTIME140_1.dll是这个库的一部分,缺少它会导致你无法运行某些应用程序。
解决方法:
-
安装 Visual C++ Redistributable:
- 访问 微软官网的下载页面 或直接搜索 “Microsoft Visual C++ Redistributable 2015, 2017, 2019”。
- 下载并安装适合你系统的版本(通常选择 x64)。
-
检查系统路径:
- 有时即便安装了 Redistributable,可能会出现环境变量的问题。确保安装的目录已经包含在系统的路径环境变量中。
-
重新启动电脑:
- 安装完 Visual C++ Redistributable 后,最好重启一下电脑,确保所有依赖库能够正常加载。
-
手动下载缺失的 DLL 文件:
- 如果问题依然没有解决,可以尝试从其他可信的源(如DLL-files.com)下载 VCRUNTIME140_1.dll 文件,并将其放置在应用程序目录或系统的
C:\Windows\System32或C:\Windows\SysWOW64目录下。
- 如果问题依然没有解决,可以尝试从其他可信的源(如DLL-files.com)下载 VCRUNTIME140_1.dll 文件,并将其放置在应用程序目录或系统的