头图

整体开发环境迁移到 windows + wsl2 几个月时间,没有感觉有什么不适应的感觉。

直到最近,要做一个flutter 项目。才遇到一些阻碍。本文,主要介绍如何在 wsl2 下搭建flutter 开发环境。

环境介绍

网上有很多这方面的介绍类文章,我在这只是简单介绍一下,我个人的电脑软件环境。

  • windows 11 Professional
  • WSL 2 (Ubuntu 20.04)
  • VS Code
  • VS Code Remote-WSL 插件

安装 android SDK

我想让所有东西都在 WSL 2 容器内运行,因此我在 Ubuntu 内安装了 Android SDK。我的 Windows 端也设置了它,但我的目标是尽可能不使用它。

WSL2 内安装 android SDK大致可以分为以下几步。

安装 JDK 和 gradle

安卓开发的基础是需要安装 jdk 和 gradle 。接下我将演示以下 如何在 Ubuntu 内安装jdk

sudo apt install openjdk-17-jdk gradle

# 因为我用的是 zsh 所以我们编辑一下 .zshrc 文件将  java_home 导出

vi ~/.zshrc 

# 在最后增加一行 
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-jdk

当然,你也可以安装其他的 jdk 版本。

安装 Android commandLine Tools

首先,我们需要去谷歌官方网站,获取最新的Android命令行工具。您可以从此链接获取它。 (确保您下载的是 Linux 版,而不是 Windows 版)

下载链接:

https://developer.android.com/studio#downloads

cd ~ # Make sure you are at home!
curl https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip -o /tmp/cmd-tools.zip
mkdir -p android/cmdline-tools
unzip -q -d android/cmdline-tools /tmp/cmd-tools.zip
mv android/cmdline-tools/cmdline-tools android/cmdline-tools/latest
rm /tmp/cmd-tools.zip # delete the zip file (optional)

设置环境变量

Android SDK 需要设置一些环境变量。请编辑您的 .zshrc 或按照您喜欢的方式导出它们!

export ANDROID_HOME=$HOME/android
export ANDROID_SDK_ROOT=${ANDROID_HOME}
export PATH=${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${PATH}

编辑完成后, 执行一下, source 命令。

source ~/.zshrc

环境变量生效后, 通过命令行 同意android licenses.

yes | sdkmanager --licenses

安装flutter

在中国安装或使用 Flutter,那么使用托管 Flutter 依赖项的值得信赖的本地镜像站点会更好一点。要指示 Flutter 工具使用备用存储位置,您需要在运行 flutter 命令之前设置两个环境变量:PUB_HOSTED_URL 和 FLUTTER_STORAGE_BASE_URL。

export PUB_HOSTED_URL=https://pub.flutter-io.cn

export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

# 下载 flutter 代码
git clone -b dev https://github.com/flutter/flutter.git

# 设置 PATH  
export PATH="$PWD/flutter/bin:$PATH"

source 一下 zshrc 配置文件。

然后执行 , flutter doctor . 进行检测。 flutter 环境。

安卓模拟器

到现在为止,一切都很顺利。

我能够拥有一个工作的 flutter 环境,但无法将我的应用程序编译到模拟器或设备上。

我找到了两种解决方案,一种是如果您可以使用真实设备,另一种是如果您想使用模拟器。

ADB TCPIP调试

如果您使用真实设备进行测试,这是一种非常有用的设置方法。

它可以让您告诉设备,客户端与其的连接将通过 TCP 而不是 USB 进行。

要进行此设置,您只需将要测试的设备连接到 Windows。在 Windows cmd 提示符中,确保您已使用以下方式连接设备

adb devices

列出全部可以连接的设备

adb tcpip 5555

这样做将使设备准备好通过 wifi 接收 adb 命令。

adb connect <ip of phone>:5555

如果连接成功,您就可以开始了。

您可以通过查看 VSCode 来验证这一点,并注意它现在在右下角状态栏中显示一个设备。


Sean
26 声望2 粉丝

一个 有趣的老程序员