参考文档
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。
评论