Loading...
墨滴

岛上码农@公众号同名

2021/09/18  阅读:52  主题:默认主题

Mac 配置 Flutter 安卓开发环境

本篇主要讲述安卓环境的配置,iOS 的开发环境很简单,只需要安装好 Xcode 就可以搞定了。

开发工具准备

下载Andriod Studio开发工具,以及Android SDK(官网打不开,可以百度搜索)。 在安卓SDK目录下,输入./android sdk启动Android SDK Manager配置东软信息学院国内镜像,方便下载最新的SDK包。 配置步骤:

  1. 启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options...」,弹出『Android SDK Manager - Settings』窗口;
  2. 在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu.cn和80,并且选中「Force https://... sources to be fetched using http://...」复选框。设置完成后单击「Close」按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
  3. 依次选择「Packages」、「Reload」。

下载Flutter SDK

访问Flutter官网下载最新稳定版Flutter SDK,链接为:https://flutter.dev/docs/get-started/install。Flutter中文社区的网址为:https://flutter.cn/

环境变量设置

考虑国内的网络环境,需要配置国内镜像,设置环境变量,在~/目录下编辑.bash_profile(如果使用zsh终端,则编辑.zshrc),编辑完后记得source ~/.bash_profile或source ~/.zshrc,使环境变量生效。

export ANDROID_HOME=/Users/lag/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=/Volumes/ServerDevelop/flutter/bin:${PATH}

其中~/Library/Android/sdk为安卓SDK路径,/Volumes/ServerDevelop/flutter/bin为flutter的bin路径。注意Android SDK目录务必安装到/Users/lag/Library/Android/sdk目录,其中lag为当前登录用户名。 配置完之后在终端输入命令:

adb version

出现如下信息即表示成功。

Android Debug Bridge version 1.0.41
Version 29.0.6-6198805

ADB调试 华为手机需要额外配置,手机设置->系统->关于手机->版本号(连点7下开启开发者模式),修改手机本身的USB设置,打开拨号界面,输入*#*#2846579#*#*,自动进入工程菜单,选择后台设置——>usb端口设置——>Google模式。

adb kill-server
adb start-server
adb devices

最后一个命令会显示设备列表,如下所示,表示未授权开发。

BGR6R20109000835 unauthorized

授权后显示如下

BGR6R20109000835 device

Flutter插件安装

在Android Studio的Preferences的plugins中安装Flutter插件,安装的时候会自动安装Dart环境。安装完成后会出现“Start a new flutter project”选项。实际发现使用Android Studio创建Flutter项目比较慢,可以到工程目录使用如下命令,其中app项目名使用小写字母,多个单词以横线分隔:

flutter create {app项目名}
image.png
image.png

解决flutter依赖获取慢的问题

打开Flutter SDK:flutter\packages\flutter_tools\gradle\flutter.gradle 改为:

repositories {
       // google()
       // jcenter()
        maven{ url 'https://maven.aliyun.com/repository/google' }
        maven{ url 'https://maven.aliyun.com/repository/jcenter' }
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public'}
    }

Flutter报错之Waiting for another flutter command to release the startup lock解决方案

  1. 关闭Android Studio
  2. 打开flutter安装目录/bin/cache
  3. 删除lockfile文件
  4. 此时可在命令行再执行flutter相关命令,完美解决

检查安装项

执行下面命令检查安装项,若有问题(打叉),按提示修复即可。

flutter doctor

Flutter中文社区指引

Flutter中文文档

Package获取与管理

官方package网址(需要科学上网)为https://pub.dartlang.org,国内镜像为:https://pub.flutter-io.cn/。可以在该网址找到对应的第三方package,package统一通过项目的pubspec.yaml文件管理。例如,添加url_launcher(一款跳转到系统浏览器的组件),可以如下配置:

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  url_launcher: ^5.4.2

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter

获取package推荐在项目目录下使用命令行获取(Android Studio中很慢,可能是没有指定仓库的原因)。

flutter pub get

安卓模拟器无法打开解决

emulator: ERROR: Running multiple emulators with the 
same AVD is an experimental feature. Please use

在AVD Manager里,打开模拟器所在的目录,进入终端删除所有的.lock文件,我的目录是:

/Users/lag/.android/avd/Pixel_2_API_29.avd
image.png
image.png
rm -f *.lock

更新到 Flutter 2.0

近期 Google 发布了Flutter 2.0稳定版,下载更新了一下,快捷操作方法如下: 官方下载稳定版,参考官方链接:Flutter Mac 配置,下载稳定版 SDK。下载完成后解压,然后更改上述配置环境变量的 Flutter 目录,使用 zsh 的话需要编辑.zshrc 文件,使用系统的终端.bash_profile,修改 Flutter 的指向,然后再执行

source .zshrc

成功后,运行 flutter doctor 命令会给出结果:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.6, on Mac OS X 10.15.4 19E287 darwin-x64,
    locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version
    30.0.0-rc2)
[!] Xcode - develop for iOS and macOS
    ! Xcode 11.4.1 out of date (12.0.1 is recommended).
      Download the latest version or update via the Mac App Store.
    ! CocoaPods 1.9.1 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.6)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.1)
[✓] VS Code (version 1.56.0)
[✓] Connected device (1 available)

提示需要更新Xcode 和 CocoaPods 版本,根据自己需要是否更新,不更新也没太大影响。

同时切换不同的 SDK 版本

对于有时候需要在开发环境尝鲜,在生产环境使用稳定版,此时可以在 vscode 的 settings.json 中指定当前工程使用的 flutter版本,如下所示:

 //...
 "dart.flutterSdkPath""/Volumes/ServerDevelop/flutter_v2",
 //...

/Volumes/ServerDevelop/flutter_v2是解压后的 flutter SDK 的目录所在位置。

关注岛上码农
关注岛上码农

岛上码农@公众号同名

2021/09/18  阅读:52  主题:默认主题

作者介绍

岛上码农@公众号同名