参考文档

flutter 的下载和安装

下载地址: https://storage.flutter-io.cn/flutter_infra_release/releases/stable/windows/flutter_windows_3.32.2-stable.zip
解压即安装完毕

flutter 的配置

环境变量设置:

  • 把flutter的bin目录添加到 PATH 环境变量中:D:\dev\flutter_windows\bin

flutter国内源设置:

  • 添加 PUB_HOSTED_URL 环境变量,其值为:https://pub.flutter-io.cn
  • 添加 FLUTTER_STORAGE_BASE_URL 环境变量,其值为:https://storage.flutter-io.cn

检查 flutter 的健康状况

开发windows桌面应用,除了安装flutter外,还必须安装Visual Studio 2022。

 1$ flutter doctor
 2Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
 3Doctor summary (to see all details, run flutter doctor -v):
 4[] Flutter (Channel stable, 3.32.2, on Microsoft Windows [版本 10.0.19045.4651], locale zh-CN)
 5[] Windows Version (10 专业版 64 位, 22H2, 2009)
 6[] Android toolchain - develop for Android devices
 7    ✗ Unable to locate Android SDK.
 8      Install Android Studio from: https://developer.android.com/studio/index.html
 9      On first launch it will assist you in installing the Android SDK components.
10      (or visit https://flutter.dev/to/windows-android-setup for detailed instructions).
11      If the Android SDK has been installed to a custom location, please use
12      `flutter config --android-sdk` to update to that location.
13
14
15[] Chrome - develop for the web
16[!] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.7.6)
17    ! Unable to locate a Windows 10 SDK. If building fails, install the Windows 10 SDK in Visual Studio.
18[!] Android Studio (not installed)
19[] IntelliJ IDEA Ultimate Edition (version 2023.1)
20[] Connected device (3 available)
21[] Network resources

安装 Visual Studio 2022

如果是windows桌面应用的开发,需安装Visual Studio 2022
下载地址: https://learn.microsoft.com/zh-cn/visualstudio/install/install-visual-studio?view=vs-2022
下载后,打开安装程序,先勾选左边的“使用C++的桌面开发” 后,再勾选右边的“Windows 10 SDK”、“MSVC v142 - VS 2019 C++ x64/x86…”

开发桌面应用的示例

创建项目

 1$ flutter create cgg_tools_flutter
 2Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
 3Creating project cgg_tools_flutter...
 4Resolving dependencies in `cgg_tools_flutter`...
 5Downloading packages...
 6Got dependencies in `cgg_tools_flutter`.
 7Wrote 130 files.
 8
 9All done!
10You can find general documentation for Flutter at: https://docs.flutter.dev/
11Detailed API documentation is available at: https://api.flutter.dev/
12If you prefer video documentation, consider: https://www.youtube.com/c/flutterdev
13
14In order to run your application, type:
15
16  $ cd cgg_tools_flutter
17  $ flutter run
18
19Your application code is in cgg_tools_flutter\lib\main.dart.

备注:对于桌面开发,上面生成的android、ios、web目录都可以删除。

项目运行

在windows开始菜单中打开“Developer Command Prompt for VS 2022”中运行:

 1# 进入项目目录
 2$ cd D:\dev\workspaces\cgg_tools_flutter
 3
 4# 运行项目
 5$ flutter run
 6Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
 7Connected devices:
 8Windows (desktop) • windows • windows-x64    • Microsoft Windows [版本 10.0.19045.4651]
 9Chrome (web)      • chrome  • web-javascript • Google Chrome 137.0.7151.69
10Edge (web)        • edge    • web-javascript • Microsoft Edge 137.0.3296.68
11[1]: Windows (windows)
12[2]: Chrome (chrome)
13[3]: Edge (edge)
14Please choose one (or "q" to quit): 

为了方便,一般用Chrome或Edge运行调试(即选择上面的2或3)

直接选择Windows运行(选择1)亦可,不过可能会报如下错误:

 1$ flutter run
 2Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
 3Connected devices:
 4Windows (desktop)  windows  windows-x64     Microsoft Windows [版本 10.0.19045.4651]
 5Chrome (web)       chrome   web-javascript  Google Chrome 137.0.7151.69
 6Edge (web)         edge     web-javascript  Microsoft Edge 137.0.3296.68
 7[1]: Windows (windows)
 8[2]: Chrome (chrome)
 9[3]: Edge (edge)
10Please choose one (or "q" to quit): 1
11Launching lib\main.dart on Windows in debug mode...
12flutter_wrapper_app.lib(core_implementations.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
13flutter_wrapper_app.lib(standard_codec.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
14flutter_window.obj : error LNK2001: unresolved external symbol __imp__invalid_parameter [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
15main.obj : error LNK2001: unresolved external symbol __imp__invalid_parameter [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
16utils.obj : error LNK2001: unresolved external symbol __imp__invalid_parameter [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
17flutter_wrapper_app.lib(flutter_engine.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
18flutter_wrapper_app.lib(core_implementations.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
19flutter_wrapper_app.lib(standard_codec.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
20flutter_window.obj : error LNK2001: unresolved external symbol __imp__CrtDbgReport [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
21main.obj : error LNK2001: unresolved external symbol __imp__CrtDbgReport [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
22utils.obj : error LNK2001: unresolved external symbol __imp__CrtDbgReport [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
23flutter_wrapper_app.lib(flutter_engine.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
24D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\Debug\cgg_tools_flutter.exe : fatal error LNK1120: 2 unresolved externals [D:\dev\workspaces\cgg_tools_flutter\build\windows\x64\runner\cgg_tools_flutter.vcxproj]
25Building Windows application...                                     8.3s
26Error: Build process failed.

貌似是链接问题。经本人尝试,可使用下面的方法清理和重建项目(建议在VS 2022 控制台运行):

1$ flutter clean
2
3$ flutter pub get

再次运行就正常了。

添加第三方库

1# 添加路由组件
2$ flutter pub add go_router
3
4# 添加第三方ui
5$ flutter pub add fluent_ui
6
7# 添加完必须更新依赖
8$ flutter pub get

项目构建和打包

windows 下的构建命令:

1$ flutter build windows
2Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
3Building Windows application...                                    34.1s
4√ Built build\windows\x64\runner\Release\cgg_tools_flutter.exe

构建的时间可能比较长,因为包含构建的调试文件。要快速构建直接执行:flutter build windows --release
构建完后,如果要作为绿色软件进行分发,只需要打包整个build\windows\x64\runner\Release目录即可。
如果要制作应用程序安装包,可使用Inno setup。