本文环境:
- OS:Windows 11 22H2
官网链接:
前言
官网的Get Started写的挺好的,中文网站的也挺好,我这就不赘述了,
写这个主要是给自己单篇内快速回忆和整点偷懒脚本加速新机器配置用的,
总的来说咱这主要追求一个 快
本篇配置目标是搭配代理进行开发,不会涉及配置镜像,如果要配置镜像详见在中国网络环境下使用 Flutter | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter
安装Flutter
下载SDK压缩包
现在的最新版是3.29.0,但是现在还没稳定,不建议用,这里是3.27.4的快捷链接,
在这里查适合国内环境的资源:
解压缩(略)
注意:
下面的配置要用到flutter SDK路径,以我的情况为例,我解压之后把SDK放到 S:\SDK\flutter
这个路径下,
打开这个路径,至少要能看到下面图里这么些个文件,大家应该是没什么差别,有可能版本变了文件有些变化,
但是如果连bin
、dev
、packages
这几个都看不到,那肯定是找错路径了,
配置环境变量
注意
直接点击下载的脚本是GBK编码,如果你的系统设置了UTF-8编码直接运行会有乱码是正常的,
如果你使用了中文Windows镜像安装的Windows系统然后手动设置了UTF-8编码,
相信你看得懂我上面说的是什么意思,要怎么改,我就不多赘述了,至少提一下,知悉乱码原因
(Linux用户,就更懂了吧,都捣腾Linux了)
不会配置环境变量的可以看:Windows配置环境变量 | 柒柒の小碎步
Windows batch脚本
:: f15c3ed2-3c16-4655-88fc-01ef694143b7
:: 2025-03-02-1-3.bat
@echo off
setlocal enabledelayedexpansion
:: 是否启用颜色代码,1为启用,0和其他为不启用,默认为启用且交互中不再次设置
set enable_color_code=1
set env_path_in_reg_of_user="HKCU\Environment"
set env_path_in_reg_of_system="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
set target_env_path_in_reg=
set MSG_1=
:: 此脚本不期望手动指定的参数,
:: 这一行是用于选择设置系统环境变量时,会请求管理员权限并传入跳转指令,
:: 此跳转由这里执行
%1 %2
goto :input_env_type_option
:user_env_type_preproc
set target_env_path_in_reg="%env_path_in_reg_of_user%"
set MSG_1=用户
goto :main_proc
:system_env_type_preproc
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :system_env_type_preproc_inner","","runas",1)(window.close)&goto :eof
:system_env_type_preproc_inner
set target_env_path_in_reg="%env_path_in_reg_of_system%"
set MSG_1=系统
goto :main_proc
:main_proc
set /p flutter_path="请输入或粘贴你的flutter SDK路径:"
echo.
echo 将会对%MSG_1%环境变量覆盖写入FLUTTER_HOME,并在PATH中添加一些东西,
echo 没有做取消功能,不想继续运行就Ctrl + C终止,继续就按点东西比如回车键
echo.
pause
reg add "%target_env_path_in_reg:"=%" /v "FLUTTER_HOME" /t REG_EXPAND_SZ /d "%flutter_path%" /f
call :add_to_env_path %%%%FLUTTER_HOME%%%%\bin
call :print_green_line 设置完成
echo.
echo 下面可能存在 值显示异常,通常是由异常的变量替换引起的,正常,这只是预览一下,实际生效情况还是去环境变量那看看的好
call :view_reg_var FLUTTER_HOME
call :view_reg_var PATH
pause
goto :eof
:input_env_type_option
echo.
echo 可用选项如下(一个数字)
echo 1. 用户环境变量
echo 2. 系统环境变量
set /p env_type_option=请输入选项:
if "%env_type_option%"=="1" (
goto :user_env_type_preproc
) else if "%env_type_option%"=="2" (
goto :system_env_type_preproc
) else (
call :print_red 输入错误,请重新输入
@REM pause
goto :input_env_type_option
)
:view_reg_var
::应传入的参数如下
:: 1: 要从注册表中查询的环境变量名
call :query_reg_save_to_var "%target_env_path_in_reg:"=%" "%~1" "temp_path_var"
call :print_blue_line "从注册表%MSG_1%环境变量中读取到的 %~1 值为:"
call :print_blue_line "%temp_path_var%"
goto :eof
:add_to_env_path
::应传入的参数如下
:: 1: 要添加到PATH的目录
call :query_reg_save_to_var "%target_env_path_in_reg:"=%" "PATH" "temp_path_var"
reg add "%target_env_path_in_reg:"=%" /v "PATH" /t REG_EXPAND_SZ /d "!temp_path_var!;%~1" /f
goto :eof
:query_reg_save_to_var
::应传入的参数如下
:: 1: 注册表路径
:: 2: 注册表键名
:: 3: 要把查到的值存入的变量名
:: 使用 for /f 循环解析输出
for /f "usebackq skip=2 delims=?" %%i in (`reg query "%~1" /v "%~2"`) do (
for /f "tokens=1,2,* delims= " %%a in ("%%i") do (
set "%~3=%%c"
)
)
goto :eof
:print_green
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [42;37;1m%~1[0m
)
goto :eof
:print_green_line
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [42;37;1m
echo %~1[0m
)
goto :eof
:print_blue
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [44;37;1m%~1[0m
)
goto :eof
:print_blue_line
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [44;37;1m
echo %~1[0m
)
goto :eof
:print_red
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [41;37;1m%~1[0m
)
goto :eof
:print_red_line
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [41;37;1m
echo %~1[0m
)
goto :eof
endlocal
检查
配置好之后,打开一个新的终端,输入flutter --version
,第一次运行的话要等一会儿是正常的,
然后如果能看到版本信息就说明上面的步骤弄好了,
看不到就再回去检查检查
配置Windows目标构建支持
官网文档看:Make Windows desktop apps | Flutter
这个没啥好配置的,Win下就是装Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器,然后装负载,
然后运行flutter doctor
检测,没乱改啥东西的话,装好了能自动检测到的
doctor结果应该像下面这样Visual Studio
这行正常,(后面如果你那边不是生成工具是正常的,绿了就行,)
如果已经装好Visual Studio了的话,手动检查负载或者安装,就像下面这样
把使用C++的桌面开发选上
配置Android目标构建支持
官网文档看:Make Android apps | Flutter
下载Android Studio:下载 Android Studio 和应用工具 - Android 开发者 | Android Developers
用不用这个做为使用的IDE都行,装这个主要是便于管理Android SDK,
安装过程中,如果不知道SDK默认安装文件夹位置的,或者要改安装位置的,
安装类型这一步选自定义 Custom 去看看,
然后装一些必要的工具
Windows batch脚本
:: f15c3ed2-3c16-4655-88fc-01ef694143b7
:: 2025-03-02-1-4.bat
@echo off
setlocal enabledelayedexpansion
:: 是否启用颜色代码,1为启用,0和其他为不启用,默认为启用且交互中不再次设置
set enable_color_code=1
set env_path_in_reg_of_user="HKCU\Environment"
set env_path_in_reg_of_system="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
set target_env_path_in_reg=
set MSG_1=
:: 此脚本不期望手动指定的参数,
:: 这一行是用于选择设置系统环境变量时,会请求管理员权限并传入跳转指令,
:: 此跳转由这里执行
%1 %2
goto :input_env_type_option
:user_env_type_preproc
set target_env_path_in_reg="%env_path_in_reg_of_user%"
set MSG_1=用户
goto :main_proc
:system_env_type_preproc
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :system_env_type_preproc_inner","","runas",1)(window.close)&goto :eof
:system_env_type_preproc_inner
set target_env_path_in_reg="%env_path_in_reg_of_system%"
set MSG_1=系统
goto :main_proc
:main_proc
set /p target_sdk_path="请输入或粘贴你的Android SDK路径:"
echo.
echo 将会对%MSG_1%环境变量覆盖写入Android SDK,并在PATH中添加一些东西,
echo 没有做取消功能,不想继续运行就Ctrl + C终止,继续就按点东西比如回车键
echo.
pause
reg add "%target_env_path_in_reg:"=%" /v "ANDROID_HOME" /t REG_EXPAND_SZ /d "%target_sdk_path%" /f
call :add_to_env_path %%%%ANDROID_HOME%%%%\tools
call :add_to_env_path %%%%ANDROID_HOME%%%%\tools\bin
call :add_to_env_path %%%%ANDROID_HOME%%%%\platform-tools
call :print_green_line 设置完成
echo.
echo 下面可能存在 值显示异常,通常是由异常的变量替换引起的,正常,这只是预览一下,实际生效情况还是去环境变量那看看的好
call :view_reg_var ANDROID_HOME
call :view_reg_var PATH
pause
goto :eof
:input_env_type_option
echo 请输入要设置的环境变量类型选项
:input_env_type_option_loop_inner
echo.
echo 可用选项如下(一个数字)
echo 1 : 用户环境变量
echo 2 : 系统环境变量
set /p env_type_option=请输入选项:
if "%env_type_option%"=="1" (
goto :user_env_type_preproc
) else if "%env_type_option%"=="2" (
goto :system_env_type_preproc
) else (
call :print_red 输入错误,请重新输入
@REM pause
goto :input_env_type_option_loop_inner
)
:view_reg_var
::应传入的参数如下
:: 1: 要从注册表中查询的环境变量名
call :query_reg_save_to_var "%target_env_path_in_reg:"=%" "%~1" "temp_path_var"
call :print_blue_line "从注册表%MSG_1%环境变量中读取到的 %~1 值为:"
call :print_blue_line "%temp_path_var%"
goto :eof
:add_to_env_path
::应传入的参数如下
:: 1: 要添加到PATH的目录
call :query_reg_save_to_var "%target_env_path_in_reg:"=%" "PATH" "temp_path_var"
reg add "%target_env_path_in_reg:"=%" /v "PATH" /t REG_EXPAND_SZ /d "!temp_path_var!;%~1" /f
goto :eof
:query_reg_save_to_var
::应传入的参数如下
:: 1: 注册表路径
:: 2: 注册表键名
:: 3: 要把查到的值存入的变量名
:: 使用 for /f 循环解析输出
for /f "usebackq skip=2 delims=?" %%i in (`reg query "%~1" /v "%~2"`) do (
for /f "tokens=1,2,* delims= " %%a in ("%%i") do (
set "%~3=%%c"
)
)
goto :eof
:print_green
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [42;37;1m%~1[0m
)
goto :eof
:print_green_line
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [42;37;1m
echo %~1[0m
)
goto :eof
:print_blue
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [44;37;1m%~1[0m
)
goto :eof
:print_blue_line
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [44;37;1m
echo %~1[0m
)
goto :eof
:print_red
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [41;37;1m%~1[0m
)
goto :eof
:print_red_line
if not "%enable_color_code%" == "1" (
echo %~1
) else (
echo [41;37;1m
echo %~1[0m
)
goto :eof
endlocal
检查
很好的AK,使我的冰粥旋转
然后建个新例程,分别在windows运行和打包一个apk出来,
都成功了,环境搭建成功,fufu