一、环境变量

由于众所周知的原因,在国内访问 Flutter 有时可能会受到限制,所以在开发之前,需要先配置环境变量

MacOS:

编辑 ~/.bash_profile 文件

vim ~/.bash_profile

这里用的是 vim 来编辑,如果不习惯,可以将 vim 替换为 open

open ~/.bash_profile

添加以下代码并保存

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

然后执行命令

source ~/.bash_profile

Windows:

1. 计算机 -> 属性 -> 高级系统设置 -> 环境变量,打开环境变量设置框;

2. 在用户变量下,选择新建环境变量,添加如下的两个环境变量和值:

key value
FLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn
PUB_HOSTED_URL https://pub.flutter-io.cn

二、搭建 Android 开发环境

如果已经安装过 Androdi Studio,可以跳过这一节

首先安装 Androdi Studio,会自带 Android SDK,但还需要配置环境变量

打开 AS,选择 Confiure -> SDK Manager

然后就能查看到 SDK 的地址

然后开始配置环境变量

MacOS:

按上面提到的办法编辑 ~/.bash_profile 文件,将下面的代码添加到文件中并保存

export ANDROID_HOME=/Users/{YourUserName}/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

记得把 ANDROID_HOME 设置为上面的 SDK 地址,这里只保存文件,不要用 source 命令执行

Windows:

我们需要添加的代码为

(替换成 Android SDK 路径)/tools;(替换成 Android SDK 路径)/platform-tools

1. 计算机 -> 属性 -> 高级系统设置 -> 环境变量,打开环境变量设置框

2. 在用户变量下,选择 Path,点击编辑

如果没有 Path 变量,则新建一个名为 Path 的用户变量,直接添加上面的代码

如果已经存在 Path 变量,则在原有的值后面先加一个分号  ;  ,然后将上面的代码添加到 Path

记得替换 Android SDK 路径!!!

然后可以打开 AS,选择 Confiure -> AVD Manager,按照提示创建一个模拟器

另外,Flutter 还需要安装 Git 工具,这是开发人员的标配,就不再赘述

三、搭建 IOS 开发环境

如果已经安装过 Xcode,可以跳过这一节

IOS 只能在 MacOS 上开发,可以到 App Store 下载一个 Xcode(需要 9.0 及以上版本)

App Store 上只有最新版的 Xcode,如果需要历史版本,可以访问苹果开发者平台

然后在终端执行以下命令,签署 Xcode 协议:

sudo xcodebuild -license

安装完 Xcode 之后,就可以将 Flutter 编译成 iOS 安装包了

四、下载 Flutter SDK

Flutter SDK 的下载页面选择合适的版本,如果有需要,也可以访问 Flutter 的 GitHub 仓库

将下载的压缩包解压到任意目录下,然后将 Flutter 目录添加到 Path 环境变量

MacOS:

按上面提到的办法编辑 ~/.bash_profile 文件,将下面的代码添加到文件末尾并保存

export PATH=/`pwd`/flutter/bin:$PATH

记得将 `pwd` 改为 Flutter 文件夹所在到目录!!!

如果拿不准完整路径,可以在终端进入 Flutter 目录,然后通过  pwd  命令查看完整路径

然后执行命令

source ~/.bash_profile

Windows:

1. 计算机 -> 属性 -> 高级系统设置 -> 环境变量,打开环境变量设置框;

2. 在用户变量下,编辑 Path 变量,在原有的值后面先加一个分号  ;  ,然后将 Flutter SDK 的完整路径添加到 Path

⚠️路径要指向 bin 目录,比如 Flutter 的目录是  D:\work\flutter  ,是就需要添加  D:\work\flutter\bin

这里贴一个我自己的 .bash_profile 文件的内容

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export ANDROID_HOME=/Users/wise.wrong/Library/Android/sdk
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
export PATH=/Users/wise.wrong/work/flutter/bin:$PATH

环境变量配好之后,执行以下命令

flutter doctor

只要没有报错 command not found: flutter 就说明环境变量配置成功

如果出现其它错误,换一个版本的 SDK 试试

// 最开始配置完环境变量之后,运行 flutter doctor 提示 "No such file or directory",百思不解,最后换了一个版本的 SDK 就好了

在网络不好的时候,有可能会迟迟获取不到依赖包,如果这时候结束进程,重新执行 Flutter 命令,可能会遇到这个错误:

"Waiting for another flutter command to release the startup lock"

删除 Flutter 目录下 /bin/cache/lockfile 文件即可

如果打开了Android Studio,还需要重启 Android Studio

在执行 flutter doctor 之后,可能会有一些 Flutter 的警告或者报错,按照提示修复即可

比如 flutter doctor 会检测 Android Studio 和 VS Code 中是否安装 Flutter 插件

如果没有安装,就在对应 IDE 的扩展商店中搜索“Flutter”然后安装,会同步安装 Dart 的插件

五、用 VS Code 创建一个 Flutter APP

打开 VS Code,使用快捷键 Shift+cmd+P (MacOS) 打开命令面板,输入“flutter”

选择 New Project 新建一个项目

这时可能会提示找不到 Flutter SDK,点击 Locate SDK,选择 Flutter SDK 的目录(不需要选择 bin 目录)

然后输入项目名,选择项目目录,创建项目

在 VS Code 的底部工具栏可能会看到这样的提示

这时候需要连接设备或者模拟器,可以在 Android Studio 或者 Xcode 中创建

如果已经创建了模拟器,直接点击“No Device”选择模拟器即可

当前的项目结构如图:

其中 main.dart 是项目的入口文件,入口函数为 main()

这个页面中,有 MyApp, MyHomePage, _MyHomePageState 三个组件,他们都是 Widget

Flutter 中的 Widget 相当于 Android 里的 View,iOS 里的 UIView

Widget 的渲染语法类似于 JSX,可以在 _MyHomePageState 组件中看到示例

尝试把 Text 中的内容改为“Hello World”,然后编译项目...

可以通过 VS Code 的调试器直接编译项目 (F5),也可以在终端执行 flutter run 启动项目

在编译项目之前,首先检查一下环境变量,在 VS Code 的终端中输入 env(MacOS),检查 PATH 变量是否正确

如果 PATH 变量有误,可以执行  source ~/.bash_profile  , 然后再编译项目

// 每次启动 zsh 的时候都需要 source ~/.bash_profile,后来修改了 ~/.zshrc 搞定

如果编译出现这个错误:

Failed to find target with hash string 'android-XX'

这里的 XX 是 Android API 版本,出错是因为没有对应版本的 SDK

打开 Android Studio,选择 Confiure -> SDK Manager,下载对应 API 版本的 SDK

如果相应的 SDK 都已经安装了,还是报上面的错误,打开 /android/app/build.gradle

将 android.compileSdkVersion 和 android.defaultConfig.targetSdkVersion 修改为其它已安装的版本

参考资料:

Flutter 中文网:https://flutterchina.club/setup-macos/
掘金小册《Flutter 完全手册》:https://juejin.im/book/5c5423ef6fb9a049cd54a213

Flutter 徐徐图之(一)—— 从搭建开发环境到 Hello World的更多相关文章

  1. webpack环境搭建开发环境,JavaScript面向对象的详解,UML类图的使用

    PS:因为所有的设计模式都是基于面向对象来完成的,所以在讲解设计模式之前先来过一下面向对象都有哪些知识点 搭建开发环境 初始化npm环境 下载安装nodejs安装即可,nodejs自带npm管理包,然 ...

  2. maven实战(01)_搭建开发环境

    一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...

  3. Android开发系列之搭建开发环境

    接触Android好久了,记得09年刚在中国大陆有点苗头的时候,我就知道了google有个Android,它是智能机操作系统.后来在Android出1.5版本之后,我第一时间下载了eclipse开发工 ...

  4. Sublime Text3 + Golang搭建开发环境

    Sublime Text3 + Golang搭建开发环境 http://blog.csdn.net/aqiang912/article/details/46775409 1.安装git 因为golan ...

  5. ios搭建开发环境

    ios搭建开发环境 好久就想试水IOS开发了,由于开发环境限制,一直局限于理论和虚拟机,近来入手了MacBook Pro,也来尝尝鲜,笔者也是现学现总结,如果有不足,请指正. IOS开发必备MAC O ...

  6. React Native从零到一搭建开发环境

    React Native从零到一搭建开发环境 ReactNative环境搭建 安装Homebrew 安装rvm 安装nvm 安装node 安装react-native-cli 安装watchman i ...

  7. Linux程序设计(搭建开发环境--curses)

    看官们.咱们今天要说的内容.是前面内容的一点小补充,详细的内容是:安装curses开发包.以搭建 开发环境.闲话休说,言归正转. 我们在前面说过搭建开发环境的内容,主要说了开发环境中的GCC和VIM, ...

  8. 微信小程序从零开始开发步骤(一)搭建开发环境

    从零到有写一个小程序系列专题,很早以前就想写来分享,但由于项目一直在进展,没有过多的时间研究技术,现在可以继续分享了. 1:注册 用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,网址: ...

  9. Android 程序分析环境搭建-开发环境搭建

    1.1  JDK 安装 JDK 的配置,初学java 开发,那是必须会的. 下载,遇到的问题就是要注册oracle 的账号,还有你要下载特定版本,比如jdk 1.7,jdk 1.6,很难找到在哪里.解 ...

  10. GJM : Unity3D HIAR -【 快速入门 】 二、搭建开发环境

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

随机推荐

  1. 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  2. Git安装(一)

    1. 下载Git 官网地址:https://git-scm.com/downloads 这里选择下载Git-2.23.0-64-bit.exe 2. 安装 安装完成

  3. 每天一道Rust-LeetCode(2019-06-11)

    每天一道Rust-LeetCode(2019-06-02) Z 字形变换 坚持每天一道题,刷题学习Rust. 题目描述 全排列 II 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输 ...

  4. ACE网络编程:IPC SAP、ACE_SOCKET和TCP/IP通信实例

    socket.TLI.STREAM管道和FIFO为访问局部和全局IPC机制提供广泛的接口.但是,有许多问题与这些不统一的接口有关联.比如类型安全的缺乏和多维度的复杂性会导致成问题的和易错的编程.ACE ...

  5. monkey-api-encrypt 1.1.2版本发布啦

    时隔10多天,monkey-api-encrypt发布了第二个版本,还是要感谢一些正在使用的朋友们,提出了一些问题. GitHub主页:https://github.com/yinjihuan/mon ...

  6. 一步步从零开始用 webpack 搭建一个大型项目

    开篇 很多人都或多或少使用过 webpack,但是很少有人能够系统的学习 webpack 配置,遇到错误的时候就会一脸懵,不知道从哪查起?性能优化时也不知道能做什么,网上的优化教程是不是符合自己的项目 ...

  7. kinaba 安装踩坑: FATAL Error: [elasticsearch.url]: definition for this key is missing

    操作系统:Linux kibana 版本: 7.4.0 1. 在/etc/yum.repos.d/ 下新建 kibana.repo  配置 yum 源地址 内容如下: [root@localhost ...

  8. 实战django(二)--登录实现记住我

    上节初步实现了登录和注册模块,这节我们进一步实现“记住我”功能. 大体功能分为以下模块: 1.在登录时如果勾选记住我,那么就将用户username存进cookie中,跳转到index页面: 2.此时, ...

  9. Linux内核中的并发与竞态概述

    1.前言 众所周知,Linux系统是一个多任务的操作系统,当多个任务同时访问同一片内存区域的时候,这些任务可能会相互覆盖内存中数据,从而造成内存中的数据混乱,问题严重的话,还可能会导致系统崩溃. 2. ...

  10. windows10安装ubuntu双系统教程(初稿)

    windows10安装ubuntu双系统教程(绝对史上最详细) Win10 Ubuntu16.04/Ubuntu18.04双系统完美安装 Windows10+Ubuntu18.04双系统安装成功心得( ...