Flutter windows端编译运行打包等问题记录

一、release包运行包程序崩溃 C:\WINDOWS\SYSTEM32\MSVCP140.dll

这通常是由于缺少 Microsoft Visual C++ 运行时库导致的。

解决方法:

  1. 安装 Microsoft Visual C++ 运行时库:

    • 访问 Microsoft 官方下载中心 下载并安装适用于您系统的 Visual C++ 运行时库。
    • 安装后,重启计算机,然后尝试再次运行您的程序。
  2. 将缺失的 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是这个库的一部分,缺少它会导致你无法运行某些应用程序。

解决方法:
  1. 安装 Visual C++ Redistributable

    • 访问 微软官网的下载页面 或直接搜索 “Microsoft Visual C++ Redistributable 2015, 2017, 2019”。
    • 下载并安装适合你系统的版本(通常选择 x64)。
  2. 检查系统路径

    • 有时即便安装了 Redistributable,可能会出现环境变量的问题。确保安装的目录已经包含在系统的路径环境变量中。
  3. 重新启动电脑

    • 安装完 Visual C++ Redistributable 后,最好重启一下电脑,确保所有依赖库能够正常加载。
  4. 手动下载缺失的 DLL 文件

    • 如果问题依然没有解决,可以尝试从其他可信的源(如DLL-files.com)下载 VCRUNTIME140_1.dll 文件,并将其放置在应用程序目录或系统的 C:\Windows\System32C:\Windows\SysWOW64 目录下。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容