Flutter系列(1)搭建開發環境,混合開發部署

本文基于Mac系統來搭建Flutter開發環境

一、安裝Android Studio

使用Android Studio作為Flutter的開發工具

目前使用是3.5版本

官網下載自備梯子
國內可以訪問:https://developer.android.google.cn/studio

由于我是做Android 開發的,Android Studio 安裝過程就不詳細演示了,安裝完打開,按照提示下載SDK和一些工具即可~

二、安裝 Xcode

在App Store 搜索 Xcode 安裝打開即可

Xcode 是ios/mac的軟件開發工具,Flutter 需要用Xcode打包才能安裝到ios設備上。

三、安裝Flutter

Flutter 國內站點不太穩定,可以通過環境變量配置其它穩定的站點,mac操作如下

控制臺輸入命令打開 ~/.bash_profile

open -e ~/.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 系統,右鍵點擊計算機圖標,依次選擇屬性–> 高級系統設置–> 高級–> 環境變量,新建用戶變量 PUB_HOSTED_URL,其值為https://pub.flutter-io.cn;隨后新建 FLUTTER_STORAGE_BASE_URL,其值為https://storage.flutter-io.cn,重啟電腦即可完成配置。

下載Flutter

Flutter官網

下載最新穩定版

為了可以在命令行中執行 flutter 命令,配置環境變量

mac/linux 打開~/.bash_profile

open -e ~/.bash_profile

添加
export PATH=~/Documents/flutter/bin:$PATH

路徑換成你自己的。

Windows 系統則是把Flutter 的bin目錄配置到環境變量的 PATH后面即可

切換到開發分支

flutter channel dev

檢查環境

flutter doctor

如圖,我已經在Android Studio中安裝了 DartFlutter插件(如果沒有安裝則按照提示去安裝),只差一個ios的工具沒安裝,按提示安裝即可~

四、創建flutter模塊

命令行的方式

創建命令

flutter create -t module flutter_demo

運行

flutter run

如果環境配置正確,并且連接Android設備,Flutter項目就會運行到設備上。

五、創建插件

參考

flutter create --org com.example --template=plugin --platforms=android,ios -a kotlin plugin_hello

六、集成插件

編輯pubspec.yaml文件

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2
  plugin_hello: 
    path: plugins/plugin_hello

執行flutter pub get 即可

七、Flutter集成到Android項目

這里只說源碼集成的方式

Android項目(FlutterApp)跟Flutter項目(Flutter_2021)是兩個庫,我們要在Android項目中,用git submodule 命令依賴Flutter項目

git submodule add https://github.com/lanshifu/flutter_2021.git
cd flutter_2021
flutter pub get

//執行下面命令同步submodule代碼

git submodule update --init --recursive

修改Android項目的setting.gradle

include ':app'
rootProject.name = "FlutterApp"

#下面是新增的配置
setBinding(new Binding([gradle: this]))
evaluate(new File(settingsDir, 'flutter_2021/.android/include_flutter.groovy'))
include ':flutter_2021'
project(':flutter_2021').projectDir = new File('flutter_2021/')

注意:
Flutter項目名/.android/include_flutter.groovy路徑不要寫錯,寫錯會編譯失敗,而且報錯并不是這里。

app的build.gradle添加依賴

implementation project(':flutter')

然后讓MainActivity繼承FlutterActivity

class MainActivity : FlutterActivity() {
}

先不重寫onCreate方法,運行可以看到效果。

image.png

配置和目錄如上圖所示。

踩坑

如果項目中有用到版本管理ext,可能遇到報錯如下:


image.png

這個報錯看了半天很無解,其它一個項目是正常的,看看源碼位置

image.png

最后經過艱難排查,發現是版本管理ext里定義了一個android,讀到的是配置的這個android,這個里面確實是沒有applicationVariants對象...


image.png

排查這種問題,可以通過源碼斷言 assert ,appProject.android.applicationVariants != null ,如果不通過,會在控制臺輸出這個android對象。


aar集成方式和IOS集成方式可以參考如下官方鏈接:

Android集成參考
IOS集成參考

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,197評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,415評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,104評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,884評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,647評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,130評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,208評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,366評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,887評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,737評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,939評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,478評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,174評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,586評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,827評論 1 283
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,608評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,914評論 2 372

推薦閱讀更多精彩內容