在 Ubuntu 上进行远程 Flutter 开发

配置环境

这些环境的配置都是在 Ubuntu 上进行的。

Android SDK

下载 Android sdk 的过程就不说了,下载完成后在 .zshrc/.bashrc 中配置 ANDROID_HOME 等环境变量:

export ANDROID_SDK_ROOT="$HOME/Library/Android/SDK"
export ANDROID_HOME=$ANDROID_SDK_ROOT
export PATH="$PATH":"$ANDROID_HOME/platform-tools"

JDK

我使用的是 openjdk 17,apt 直接下载:

sudo apt install openjdk-17-jdk

.zshrc/.bashrc 中配置环境变量:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

Flutter SDK

安装

我用 fvm 进行 flutter sdk 的版本管理。运行安装指令:

curl -fsSL https://fvm.app/install.sh | bash

我直接运行该命令安装遇到点问题,所以是把 install.sh 下载下来再手动运行的。

配置

接着配置 flutter sdk 存放的路径,不配置的话是直接放在 ~/fvm ,通过配置 FVM_CACHE_PATH 环境变量可以改变路径:

export FVM_CACHE_PATH=$HOME/Library/fvm

或者通过运行配置命令fvm config --cache-path=$HOME/Library/fvm

.zshrc/.bashrc中配置别名:

alias flutter='fvm flutter'

####下载
在任意目录运行:

fvm install 3.19.5

在项目目录中运行:

fvm use 3.19.5

启动

在本地启动 vscode,在侧边栏的 Remote Explorer 中创建一个远程服务器,或者点击设置⚙️,打开~/.ssh/config进行配置:

ServerAliveInterval 120
TCPKeepAlive no

Host ubuntu
HostName 192.168.1.x
User [your-user]
IdentityFile ~/.ssh/id_ed25519

然后通过 Remote Explorer 打开远程服务器上的项目。

本地运行

如果开发的不是 Android 应用,而是 Linux 应用,希望调试的时候应用能运行在 Ubuntu 上。需要创建 vscodelaunch.json,并设置环境变量 DISPLAY:

"version": "0.2.0",
"configurations": [
{
"name": "appname",
"request": "launch",
"type": "dart",
"env": {
"DISPLAY": ":1"
}
},
]

DISPLAY 的值可以通过 echo $DISPLAY 获取。

可能的问题

adb 权限问题。我在另一篇文章中有讲如何解决这个问题。