Linux 安装 Flutter 开发环境记录(Manjaro)
1、安装flutter
直接执行下面命令安装flutter
和dart
。
sudo pacman -S dart flutter
# 设置 flutter 安装目录为 git信任仓库目录
git config --global --add safe.directory /opt/flutter
# 设置当前用户为 flutter 安装目录的拥有者,不然后面会碰到很多权限问题。
sudo chown -R $(whoami) /opt/flutter/bin/cache/lockfile
# 对 flutter 缓存目录设置写权限
sudo chmod a+rwx -R /opt/flutter/bin/cache
# 安装 pkg-config 和 ninja,只是 linux-desktop 平台需要的。
yay -S pkg-config ninja
配置一下环境变量
在 /etc/profile.d
目录下新建一个 flutter.sh
文件,写入以下内容:
# 设置镜像站点,参考《在中国网络环境下使用 Flutter》
# https://flutter.cn/community/china
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
安装完成之后,可以运行一下 flutter doctor
命令查看一下安装结果。
2、安装android
开发环境
如果需要编译安卓apk
,则需要安装安卓开发环境。执行下面命令,安装 Android 开发相关软件。
# 安装安卓SDK
sudo pacman -S android-sdk
# 安装安卓NDK
sudo pacman -S android-ndk
# 安装安装模拟器
sudo pacman -S android-emulator
# 安装安卓平台API 28版本,就是Android 9.0。也可以根据需要安装对应的版本。
sudo pacman -S android-platform-28
# 安装android studio(这个也可以不安装)
sudo pacman -S android-studio
# 安装安卓x86_64系统镜像。也可以根据需要安装对应的版本。
sudo pacman -S android-x86-64-system-image-28
# 安装 OpenJDK-8
sudo pacman -S jdk8-openjdk
配置一下环境变量
在 /etc/profile.d
目录下新建一个 androidsdk.sh
文件,写入以下内容:
# 下面是在使用 flutter doctor 检测的时候,输出提示安卓工具链没有安装,按照提示
# 执行 /opt/android-sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"
# 这里会失败,输出错误信息,需要使用下面选项,可以在在使用高版本的JDK情况下使用(JDK9/10,再高也出错)
# 参考: https://cloud.tencent.com/developer/ask/sof/134405
# 这个 JAVA_OPTS 在 JDK-8 下不需要去设置
#export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
export JAVA_HOME='/usr/lib/jvm/java-8-openjdk'
export PATH=$JAVA_HOME/bin:$PATH
export ANDROID_SDK_ROOT='/opt/android-sdk'
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools/
export PATH=$PATH:$ANDROID_SDK_ROOT/tools/bin/
export PATH=$PATH:$ANDROID_SDK_ROOT/tools/
执行一下flutter doctor
,输出如下:
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this
source!
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.3, on Manjaro Linux 5.15.50-1-MANJARO, locale zh_CN.UTF-8)
[✗] Android toolchain - develop for Android devices
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[☠] Linux toolchain - develop for Linux desktop (the doctor check crashed)
✗ Due to an error, the doctor check did not complete. If the error message below is not
helpful, please let us know about this issue at https://github.com/flutter/flutter/issues.
✗ ProcessException: Failed to find "pkg-config" in the search path.
Command: pkg-config
[✓] Android Studio (version 2021.2)
[✓] Connected device (1 available)
[✓] HTTP Host Availability
! Doctor found issues in 3 categories.
然后执行/opt/android-sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"
去安装安卓工具链。
安装过程需要联网下载,可能耗时比较久。
再次执行flutter doctor
这里还提示 linux toolchain有问题,是因为我这里还没有安装pkg-config
和ninja
,安装了就没问题了。
执行完成之后再次执行就没有问题了。
Android Studio相关设置
安装完成之后,在Android Studio
里面设置一下安卓 SDK 的位置,就可以了。设置目录的时候可能无法设置,提示目录没有写权限,执行下面的命令修改就是
sudo chmod a+w -R /opt/android-sdk
完成上面操作后,在Android-Studio里面的虚拟设备管理(Virtual Device Manager)里面就可以创建新的虚拟设备了(部分设备无法创建,没有对应的镜像可以用,选择Nexus 5
等在Play Store
列有三角形图标的就是,有这个都可以创建(没有必然联系),没有的不一定能)。
参考
在 VS Code 里开发 Flutter 应用
Flutter 打包 android端 apk
[在 Linux 操作系统上安装和配置 Flutter 开发环境]https://juejin.cn/post/6844903650704244750
Flutter C++插件:Linux桌面应用开发