Mac 配置 Flutter 安卓開發環境

島上碼農發表於2021-05-10

安卓開發環境

開發工具準備

下載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,連結為:flutter.dev/docs/get-st…。Flutter中文社群的網址為: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

解決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網址(需要科學上網)為pub.dartlang.org,國內映象為: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

rm -f *.lock
複製程式碼

相關文章