在macOS上搭建Flutter开发环境
flutter安装
-
使用镜像
由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中:export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
注意: 此镜像为临时镜像,并不能保证一直可用,读者可以参考https://flutter.io/community/china 以获得有关镜像服务器的最新动态。
-
获取 flutter sdk
官网地址:https://flutter.io/sdk-archive/#macos
下载后解压,-d 指定文件解压缩后所要存储的目录。我这里是解压至 ~/dev-soft/ 文件夹下cd ~/downloads unzip flutter_macos_v1.2.1-stable.zip -d ~/dev-soft/
至此,已经解压完毕,flutter的目录为~/dev-soft/flutter
-
配置环境变量
在用户目录下打开或创建.bash_profile文件
-
创建.bash_profile文件(如果有.bash_profile文件就不用这一步了)
touch ~/.bash_profile
-
打开.bash_profile并编辑:
open ~/.bash_profile
-
配置flutter到环境变量中
export FLUTTER_HOME=/Users/xxx/dev-soft/flutter export PATH= $FLUTTER_HOME/bin:$PATH
-
使修改后的配置生效命令:
source .bash_profile
-
验证“flutter/bin”是否已在PATH中
echo $PATH
注意: 如果你使用终端是zsh,终端启动时 ~/.bash_profile 将不会被加载,解决办法就是修改 ~/.zshrc(如果没有.zshrc文件,就自己创建),在其中添加:source .bash_profile。
-
验证是否生效,在任意终端运行命令
flutter doctor
xcode安装
待更新
android studio 安装
- 安装sdk
- 查看sdk路径
AndroidStudio:
菜单栏AndroidStudio > Preferences > Appearences&Behavior > System Settins > Android SDK tab中的SDK Location。 - 配置环境变量
export ANDROID_HOME=~/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/platform-tools export PATH=$PATH:$ANDROID_HOME/build-tools
- 验证配置是否成功
命令行输入adb.如果未显示command not found,说明此命令有效,环境变量设置完成。 - 安装模拟器
点击下图红线框出来的AVD Manager ,根据提示一步步创建。在这里,我创建了一个pixel 2。
配置编辑器 vscode
- 安装Flutter插件
- 启动 VS Code
- 调用 View>Command Palette…
- 输入 ‘install’, 然后选择 Extensions: Install Extension action
- 在搜索框输入 flutter , 在搜索结果列表中选择 ‘Flutter’, 然后点击 Install
- 选择 ‘OK’ 重新启动 VS Code
- 新建项目
启动 VS Code
调用 View>Command Palette…
输入 ‘flutter’, 然后选择 ‘Flutter: New Project’ action
输入 Project 名称 (如myapp), 然后按回车键
指定放置项目的位置,然后按蓝色的确定按钮
等待项目创建继续,并显示main.dart文件
- 运行应用程序
确保在VS Code的右下角选择了目标设备
按 F5 键或调用Debug>Start Debugging
等待应用程序启动
如果一切正常,在应用程序建成功后,您应该在您的设备或模拟器上看到应用程序:
- 遇到问题
1.Failed to launch emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
其实报的这个错是假象,只需要打开andorid studio中的AVD Manager,创建一个模拟器就ok了 - x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: HAXM is not installed on this machine
解决方法:打开sdk manager, 安装 inter x86 Emulator accelerator
搭建问题汇总
- Android license status unknown.
flutter doctor --android-licenses - Android sdkmanager tool not found
网上有很多人回答说 将 android-sdk/emulator/bin 目录拷贝至 android-sdk/tools/就可以解决这个问题,但是我发现这样只能解决当前报错,在之后运行别的命令时(如sdkmanager --update )还会出现更多问题。
所以一旦出现这个问题后,我推荐的解决方式是卸载android studio,重装。 - sdkmanager --update
错误: 找不到或无法加载主类 com.android.sdklib.tool.sdkmanager.SdkManagerCli
猜测:jdk版本过高?我安装的是jdk10版本,现重新安装jdk1.8,尝试看是否能解决这个问题。brew cask install java8
结论:这个还是因为在对待 Android sdkmanager tool not found 的问题上,处理方式不对。当时是听信网上一些说法,将emulator/bin 下面拷贝到了android-sdk/tools/下,以为能解决 Android sdkmanager tool not found 问题,结果在运行 sdkmanager --update 又出现了新的问题。所以还是要卸载android studio,重装
顺便提个小知识点,如何切换jdk版本?
a. 配置环境变量:
export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home"
export JAVA_11_HOME="/Library/Java/JavaVirtualMachines/openjdk-11.0.1.jdk/Contents/Home"
#默认JDK 8
export JAVA_HOME=$JAVA_8_HOME
#alias命令动态切换JDK版本
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
b. 验证
➜ ~ jdk8
➜ ~ java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
➜ ~
➜ ~ jdk11
➜ ~ java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
- 如何查看mac下安装的jdk版本?
cd /Library/Java/JavaVirtualMachines ls
- Could not download guava.jar (com.google.guava:guava:23.0)
这是因为网络不好导致的,要不就翻墙,要不就一直flutter run这个项目,触发 gradle initial,总会成功的。