vs code 搭建flutter運行環境(mac)

以前開發過hybrid app,用的是webview渲染,因爲webview的體驗會沒有原生的體驗好,因此對跨端原生開發燃起了學習的興趣,在react-native和flutter之間糾結,前端

看了網上的一些對比,雖然flutter比較新,用的又是新的dart語言, 但貌似在兼容性上要優於reactive-native, 閒魚團隊就用了flutter,因而就決定從flutter入手。java

做爲一名前端開發,在flutter支持的幾種編輯器中仍是用vs code比較順手,因而打算用vs code來配置flutter開發環境react

先跟着官網進行前幾步基礎安裝程序,前幾步官網上有的基礎配置,最好跟着官網來,博客會過期,官網會更新。。android

1. 安裝flutterios

 export PUB_HOSTED_URL=https://pub.flutter-io.cn
 export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
 git clone -b dev https://github.com/flutter/flutter.git

若是要更新環境變量git

vim ~/.bash_profile 進入文件添加系統變量路徑github

export PATH=PATH_TO_FLUTTER_GIT_DIRECTORY/flutter/bin:$PATH  //注意: 爲你flutter的路徑,好比「~/document/code」PATH_TO_FLUTTER_GIT_DIRECTORY

運行 source $HOME/.bash_profile 刷新當前終端窗口.web

查看環境變量是否在已經在PATH中:vim

echo $PATH

至於環境變量,須要添加flutter路徑以及jdk和andriod sdk路徑 react-native

注意:這些對應的具體路徑改爲本身對應的目錄路徑

export PATH=/Users/username/flutter/bin:$PATH
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
export ANDROID_SDK_ROOT=/Users/username/software/android-sdk
export ANDROID_HOME=$ANDROID_SDK_ROOT
export PATH
=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/build-tools/28.0.3

  

2. 安裝dart sdk

brew tap dart-lang/dart
brew install dart

若是沒有安裝Homebrew的,須要先安裝 https://brew.sh/

 

3. vs code 配置

vs安裝dart和flutter擴展

查看是否安裝成功

command+shift+p

Flutter: Run Flutter Doctor

新建項目demo

Flutter:New Project

若是新建項目出現了這樣的項目目錄,說明已經新建成功了,若是沒有,那須要檢查一下jdk、android-sdk,jdk的版本必定要是1.8的。

添加系統變量等操做,完成以後運行 Flutter:Launch emulater 就能夠看到模擬器, 最後執行flutter run 就能夠看到項目已經在模擬器裏運行起來了。

至此,demo纔算跑起來,而後按照提示改lib/main.dart文件的東西,按r鍵熱加載,就能夠看到改動以後的效果了。

 

4. 一些坑

在vs插件安好了以及flutter sdk, dart sdk安裝完成以後,準備新建一個項目,新建項目以前先運行flutter doctor。。不行。。貌似在安裝什麼插件。。等了很久,沒有成功。這個時候flutter create myapp顯然是沒有成功的。

因而才知道要安裝jdk, android sdk。。安完以後添加到系統變量。。嗯。而後新建項目,此次成功了,項目目錄出來了,然而準備跑起來的時候flutter run的時候報錯

Unable to locate a development device; please run 'flutter doctor' for information about
installing additional components.

額,好吧,那運行flutter doctor ...出現一堆錯誤

根據上面的報錯提示,更新了安卓sdk, 而後出現Android license status unknown報錯,

根據提示 update sdkmanager

仍是報錯 Exception in thread 「main」 java.lang.UnsupportedClassVersionError ,這個錯誤是由於jdk版本不對,java --version 查看版本

jdk 版本要是1.8的,其餘版本不行。。先開始安裝的是12,就一直報錯換成1.8以後,flutter doctor --android-licenses 而後就成功了 這個錯誤解決

最後是,項目的新建及目錄沒問題以後,在運行以前要有模擬器或是usb鏈接真機,模擬器的問題,在mac上安裝了xcode就會出現可運行的ios模擬器,運行就能夠看到效果了

 

關於模擬器

ios模擬器的話是須要安裝xcode的,安裝完xcode運行flutter doctor若是提示版本低讓升級的話,能升級就升級吧,不能升級好像也不要緊,個人因爲mac系統升級出了點問題,沒法升級,因此xcode也沒法升級,因此就用的仍是九點幾的版本 ,但運行項目的時候,運行模擬器是會出現ios模擬器的

安卓虛擬機的安裝(其實不用安裝,虛擬機還慢,還不如真機use調試)過程的嘗試比較曲折 jdk,android-sdk等一系列環境都配置好以後,用vscode來直接建立的話也報錯,根據提示運行安裝sdkmanager "system-images;android-27;google_apis_playstore;x86"

也並無論用。。。再試仍是提示這個

沒辦法,那隻能另找方法新建一個安卓模擬器了

因爲安卓的版本升級,網上的不少方法都是低版本的sdk用可視化工具來進行安裝的,android命令也被廢棄

如今用的命令是sdkmanager和avdmanager  利用sdkmanager來安裝能夠的system-image

 運行avdmanager,出現如下提示 

 根據這個提示來新建安卓虛擬機

avdmanager [global options] create avd [action options]

example 

avdmanager create avd -n testAvd -k "system-images;android-25;google_apis;x86"
testAvd 是本身起的名字 -k後面是類型必填的

global options是上面的幾個命令  action options 下面對應的命令及其含義進行相應的配置

完成以後再在vscode裏面 launch emulator 就能看到新建的安卓虛擬機選項了

 

若是沒有安裝emulator目錄,sdkmanager emulator安裝。

通過斷斷續續的折騰,終於在mac上安裝成功ios模擬器和安卓模擬器,win10下安裝成功安卓模擬器

最後,總結下,因爲以前沒配置過Android sdk,因此在這個事上折騰的比較久,老版的Android sdk是能夠用圖形界面來安裝操做,新版的都換成用sdkmanager命令來安裝sdk下的其餘目錄如platform-tools目錄,emulator目錄等和avdmanager命令來create avd建立虛擬機,若是要建立安卓虛擬機,Android sdk下的system-iamges文件夾必定要有

再有就是在配置環境變量的過程當中要注意,一不當心手抖打錯字就可能致使運行失敗,mac和win上的環境變量的配置方式包括路徑等也有些不一樣,也是須要注意下的。

固然,除了在虛擬機上運行調試,其實也能夠不安裝虛擬機,直接用usb連真機調試更好。

相關文章
相關標籤/搜索