flutter wsl2安装记录(使用宿主机虚拟机)

背景

dart flutter安装记录,安装到wsl2上,因为wsl2上没有虚拟机,安卓虚拟机在宿主机上安装。

正文

官网

docs.flutter.dev/install/qui...

前置条件

使用vscode连接上wsl

vscode 安装插件

dart

flutter

wsl安装 sdk

docs.flutter.dev/install/man...

arduino 复制代码
sudo apt-get install -y curl git unzip xz-utils zip libglu1-mesa
arduino 复制代码
curl -O https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.47.1-stable.tar.xz
bash 复制代码
mkdir ~/develop
tar -xf /tmp/flutter_linux_3.47.1-stable.tar.xz -C ~/develop/
bash 复制代码
echo 'export PATH="$HOME/develop/flutter/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
css 复制代码
flutter --version
dart --version

检查下flutter的状态

上面安装完sdk后最好重启下vscode,如果是用vscode连接的wsl

less 复制代码
[flutter] flutter doctor -v
[✓] Flutter (Channel stable, 3.47.1, on Ubuntu 24.04.4 LTS 6.18.33.2-microsoft-standard-WSL2, locale C.UTF-8) [136ms]
    • Flutter version 3.47.1 on channel stable at /home/ubuntu/develop/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 6655482ec0 (3 days ago), 2026-08-19 10:07:23 -0700
    • Engine revision 5d53178869
    • Dart version 3.13.1
    • DevTools version 2.60.0
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets, enable-record-use, enable-swift-package-manager, omit-legacy-version-file, enable-lldb-debugging, enable-uiscene-migration

[✗] Android toolchain - develop for Android devices [110ms]
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/to/linux-android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.


[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome) [98ms]
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✗] Linux toolchain - develop for Linux desktop [964ms]
    ✗ clang++ is required for Linux development.
      It is likely available from your distribution (e.g.: apt install clang), or can be downloaded from https://releases.llvm.org/
    • cmake version 3.28.3
    • ninja version 1.11.1
    • pkg-config version 1.8.1
    ✗ GTK 3.0 development libraries are required for Linux development.
      They are likely available from your distribution (e.g.: apt install libgtk-3-dev)
    • OpenGL core renderer: D3D12 (Intel(R) Iris(R) Xe Graphics)
    • OpenGL core version: 4.1 (Core Profile) Mesa 25.2.8-0ubuntu0.24.04.2
    • OpenGL core shading language version: 4.10
    • OpenGL ES renderer: D3D12 (Intel(R) Iris(R) Xe Graphics)
    • OpenGL ES version: OpenGL ES 3.0 Mesa 25.2.8-0ubuntu0.24.04.2
    • OpenGL ES shading language version: OpenGL ES GLSL ES 3.00
    • GL_EXT_framebuffer_blit: yes
    • GL_EXT_texture_format_BGRA8888: yes

[!] Proxy Configuration [52ms]
    • HTTP_PROXY is set
    • NO_PROXY is 192.168.*,172.31.*,172.30.*,172.2*,172.19.*,172.18.*,172.17.*,172.16.*,10.*,127.*,*.local,localhost,*360buyimg.com,100ime-iat-api.xfyun.cn,*jd.com,*zhimg.com,*zhihu.com
    • NO_PROXY contains localhost
    ! NO_PROXY does not contain 127.0.0.1
    ! NO_PROXY does not contain ::1

[✓] Connected device (1 available) [47ms]
    • Linux (desktop) • linux • linux-x64 • Ubuntu 24.04.4 LTS 6.18.33.2-microsoft-standard-WSL2

[✓] Network resources [1,139ms]
    • All expected network resources are available.

! Doctor found issues in 4 categories.
exit code 0

从上面可以看出来,Android目前是没法用的,下一步就配置Android的。

Android development

docs.flutter.dev/platform-in...

下载 Android Studio Quail 3 developer.android.com/studio

安装完成后打开,需要选择安装sdk的 d盘下新建一个文件夹android_sdk

erlang 复制代码
Preparing "Install Sources for Android 37.0 (revision 2)".
Downloading https://dl.google.com/android/repository/source-37.0_r02.zip
"Install Sources for Android 37.0 (revision 2)" ready.
Installing Sources for Android 37.0 in D:\android_sdk\sources\android-37.0
"Install Sources for Android 37.0 (revision 2)" complete.
"Install Sources for Android 37.0 (revision 2)" finished.
Preparing "Install Android SDK Build-Tools 36 v.36.0.0".
Downloading https://dl.google.com/android/repository/build-tools_r36_windows.zip
"Install Android SDK Build-Tools 36 v.36.0.0" ready.
Installing Android SDK Build-Tools 36 in D:\android_sdk\build-tools\36.0.0
"Install Android SDK Build-Tools 36 v.36.0.0" complete.
"Install Android SDK Build-Tools 36 v.36.0.0" finished.
Preparing "Install Android SDK Platform 37.0 (revision 2)".
Downloading https://dl.google.com/android/repository/platform-37.0_r02.zip
"Install Android SDK Platform 37.0 (revision 2)" ready.
Installing Android SDK Platform 37.0 in D:\android_sdk\platforms\android-37.0
"Install Android SDK Platform 37.0 (revision 2)" complete.
"Install Android SDK Platform 37.0 (revision 2)" finished.
Preparing "Install Android SDK Platform-Tools v.37.0.1".
Downloading https://dl.google.com/android/repository/platform-tools_r37.0.1-win.zip
"Install Android SDK Platform-Tools v.37.0.1" ready.
Installing Android SDK Platform-Tools in D:\android_sdk\platform-tools
"Install Android SDK Platform-Tools v.37.0.1" complete.
"Install Android SDK Platform-Tools v.37.0.1" finished.
Preparing "Install Android Emulator v.37.1.11".
Downloading https://dl.google.com/android/repository/emulator-windows_x64-15917651.zip
"Install Android Emulator v.37.1.11" ready.
Installing Android Emulator in D:\android_sdk\emulator
"Install Android Emulator v.37.1.11" complete.
"Install Android Emulator v.37.1.11" finished.
SDK Manager found the following installed packages: build-tools;36.0.0 emulator platform-tools platforms;android-37.0 sources;android-37.0
Android SDK is up to date.

检查安卓模拟器

docs.flutter.dev/platform-in...

检查API Level of 36 has been selected.

检查Verify that the following SDK Tools have been selected: Android SDK Build-Tools Android SDK Command-line Tools Android Emulator Android SDK Platform-Tools CMake NDK (Side by side)

没有勾选的勾选后 apply

flutter 重新检测 安卓

bash 复制代码
vim ~/.bashrc 

正常目录是,我前面是选择的d盘下android_sdk目录

makefile 复制代码
C:\Users\<你的Windows用户名>\AppData\Local\Android\Sdk\platform-tools\adb.exe
bash 复制代码
# 设置 Android SDK 根目录(注意替换成你的真实用户名)
export ANDROID_HOME="/mnt/d/android_sdk"

# 将 platform-tools 添加到 PATH 最前面,优先使用 Windows 的 adb
export PATH="$ANDROID_HOME/platform-tools:$PATH"

因为ubuntu不能识别exe的,所以需要挨个添加软连接

bash 复制代码
cd /mnt/d/android_sdk/platform-tools

ln -s adb.exe adb

cd /mnt/d/android_sdk/build-tools

# 遍历所有版本目录
for version in */; do
    cd "$version"
    # 为所有 .exe 文件创建对应的无后缀软链接(如果软链接不存在)
    for file in *.exe; do
        base=$(basename "$file" .exe)
        if [ ! -e "$base" ]; then
            ln -s "$file" "$base"
            chmod +x "$base" "$file"
        fi
    done
    cd ..
done

安装jdk

sql 复制代码
sudo apt-get update
sudo apt install openjdk-17-jdk
bash 复制代码
vim ~/.bashrc
bash 复制代码
# 设置 JAVA_HOME,路径指向你安装的 JDK 17
export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
# 将 Java 的可执行文件路径添加到 PATH 中
export PATH="$JAVA_HOME/bin:$PATH"
bash 复制代码
source ~/.bashrc

上面需要同意协议 (这一步天坑,23工具的提示废弃了,新的又没同意协议的地方。。坑爹啊)

vbnet 复制代码
WARNING: The SDK Manager CLI tool (sdkmanager) is deprecated. Android CLI will be used instead.
The 'android' binary can also be found in the cmdline-tools directory, and 'android sdk' is the replacement for 'sdkmanager'.
To learn more about the Android CLI and how to use it, see the documentation (https://d.android.com/tools/agents/android-cli)

Warning: The --licenses option is no longer needed.

直接执行会报错 www.reddit.com/r/flutterhe...

命令行工具降级到22版本

宿主机也安装jdk,使用powershell

复制代码
winget install Microsoft.OpenJDK.17

更新.bashrc

bash 复制代码
export PATH="$ANDROID_HOME/cmdline-tools/22.0/bin:$PATH"
bash 复制代码
cd /mnt/d/android_sdk/cmdline-tools/22.0/bin
ln -s android.exe android
bash 复制代码
vim sdkmanager

#!/bin/bash
/mnt/c/Windows/System32/cmd.exe /c "D:\android_sdk\cmdline-tools\22.0\bin\sdkmanager.bat" "$@"
相关推荐
前端炒粉1 小时前
长会话虚拟滚动与渲染优化
前端·javascript·vue.js
花归去2 小时前
ant的a-table更改表格的高度
前端·javascript·html
sibylyue2 小时前
基于 Vben Admin 框架的 Vue 3 前端项目配置文件及常用命令
前端·javascript·vue.js
知几蜗牛2 小时前
0 后端 · 0 数据库 · 0 备案:用 AI 两天搓出的股票管理系统,开源了
前端·后端·llm
Kevin Coding2 小时前
JsonConvert:适用于 Android、鸿蒙与 Flutter 的 JSON 转 Model 插件
android·flutter·harmonyos
雪芽蓝域zzs3 小时前
Element‑Plus icon 图标名称查询 & 和菜单 meta.icon 字段映射
前端
01_ice3 小时前
前端学习css
前端·css·学习
愚公搬代码4 小时前
【愚公系列】《Web应用安全》010-Repeater模块的使用
前端·安全
Cache技术分享4 小时前
503. Java 反射 - 编写 ServiceFactory 类
前端·后端