flutter1.8打包aar上傳maven集成到原生android工程

一.前言

? ? flutter發(fā)布到現(xiàn)在也有一年多了检眯,越來越多的猿加入flutter的大軍當中涎嚼。所在公司也非常鼓勵使用新的技術碴巾,所以就想著把目前android項目中的某些頁面替換為flutter特愿。利用flutter的優(yōu)點來提高移動端的開發(fā)效率蛾坯。

二.集成方式介紹

? ? flutter與原生native項目集成大致分為兩種方式:

? ? 1. 官方解決方案:就是將flutter作為module讓原生native工程直接依賴

? ? 2.閑魚flutter集成方案:將flutter項目打包成aar上傳至maven光酣,原生native工程通過maven引用

兩種方式各有優(yōu)缺點,在這里我采用的是第二種方案脉课。

三.集成步驟

? ? 因為也是初學flutter救军,在網(wǎng)上找了一大堆資料,最開始看到閑魚團隊的文章說是如果要把flutter項目打包成aar下翎,需要自己手動編寫腳本把flutter編譯后的產(chǎn)物打包到aar中才能用缤言。最后找到《Flutter混合開發(fā)之打包aar并上傳到nexus》這篇文章,發(fā)現(xiàn)其實打包aar很簡單视事,完全不需要寫拷貝flutter編譯后產(chǎn)物胆萧。當然也可能是閑魚的解決方案對應的早起beta版本的flutter,目前我采用的flutter版本是1.8.3,下面結合網(wǎng)上找的資料把整個集成流程梳理下俐东。

? ? 1. 運行命令創(chuàng)建flutter工程

flutter create -t module? xxxx(工程名稱)

? ? 以這種方式創(chuàng)建的工程結構如下跌穗,其中.android就跟我們原生native工程一樣,里面有java代碼虏辫,有build.gradle文件蚌吸。一般我們不會選擇去直接修改.android工程下的build.gradle文件,因為一旦flutter項目引用了新的第三方框架之后砌庄,運行 flutter pub get 命令之后羹唠,.android目錄會重新被生成一次,對build.gradle文件做的修改都會丟失娄昆。

? ? 2.執(zhí)行打包命令

flutter build apk

? ? 就會發(fā)現(xiàn)在工程根目錄/.android/Flutter/build/outputs/aar目錄下會生成個aar文件佩微,這個aar文件就是我們原生native工程需要引用的aar文件。

? ? 如果flutter工程中沒有引用第三方插件的話萌焰,那么集成步驟到這里就基本結束了哺眯,只需要把這里生成的aar文件直接放到原生native工程lib文件夾中或者上傳至maven 給原生nativie工程依賴就行了。

? ? 但是隨著flutter越來越完善扒俯,pub.dev上的開源插件也越來越多奶卓,本著不要重復造輪子的原則一疯,我們不可避免的會使用一些優(yōu)秀的第三方插件。但是使用 flutter build apk 命令打出來的aar是不包含第三方插件的jar的夺姑,那么我們原生native工程使用aar的時候墩邀,在涉及到第三方插件的功能處就會掛掉,會報NoSuchClassError盏浙。

? ? 拿connectivity這個插件來舉例磕蒲,正常的打包命令無法將下圖中的jar打進最終的aar中

3.借助fat-aar打包完整的aar

? ? 前人栽樹,后人乘涼只盹。所幸flutter 插件不能被打進aar包的問題在網(wǎng)上已經(jīng)有解決方案了,那就是借助fat-aar來把第三方插件的jar打進aar中兔院。這里我就直接用了github上現(xiàn)成的方案了殖卑。

? ? 但是這個方案必須要去修改.android目錄下的gradle腳本,來達到正確打包aar的目的坊萝。前面也說了.android目錄會隨著flutter pub get命令重新生成孵稽,這樣就導致我們可能會時不時的去修改gradle文件,顯得非常麻煩十偶。不過網(wǎng)上的大佬為了解決這個問題菩鲜,采用shell腳本來實現(xiàn)自動修改gradle文件然后打包上傳aar,我這里結合自己的項目惦积,精簡了下shell腳本接校。

4.借助shell腳本完成flutter的打包上傳一條龍服務

? ? 集成所需要的腳本如下:

flutter.sh: 打包腳本,完成對gradle文件配置修改狮崩、編譯打包aar蛛勉、上傳aar的工作。

dependencies_gradle_plugin.gradle:? 這個腳本在打包過程中會自動被.android/Flutter/build.gradle引用

setting_gradle_plugin.gradle:這個腳本在打包過程中會自動被.android/setting.gradle引用

gradle.properties:上傳maven的配置信息

uploadArchives.gradle:上傳aar腳本

這幾個文件保持目錄結構不變的話睦柴,只需要將gradle.properties里面的配置成自己的maven服務器地址诽凌,然后就可以直接用了。

文件下載地址:鏈接:https://pan.baidu.com/s/1_0aHcOYP58SbLwKZD8ehdw? 密碼:cb5v

5.原生native工程引用aar

? ? flutter的aar上傳到maven后坦敌,原生native工程就可以直接使用啦

implementation 'cn.thecover.flutter:thecover-flutter:1.0.18@aar'

四.后記

? ? 由于自己也是剛開始學習flutter侣诵,連這個集成工作都搞了一周,期間也大大小小踩了很多坑狱窘。文中如果有說的不對的地方杜顺,請多多指正。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末训柴,一起剝皮案震驚了整個濱河市哑舒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌幻馁,老刑警劉巖洗鸵,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件越锈,死亡現(xiàn)場離奇詭異,居然都是意外死亡膘滨,警方通過查閱死者的電腦和手機甘凭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來火邓,“玉大人丹弱,你說我怎么就攤上這事〔桑” “怎么了躲胳?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纤勒。 經(jīng)常有香客問我坯苹,道長,這世上最難降的妖魔是什么摇天? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任粹湃,我火速辦了婚禮,結果婚禮上泉坐,老公的妹妹穿的比我還像新娘为鳄。我一直安慰自己,他們只是感情好腕让,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布孤钦。 她就那樣靜靜地躺著,像睡著了一般记某。 火紅的嫁衣襯著肌膚如雪司训。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天液南,我揣著相機與錄音壳猜,去河邊找鬼。 笑死滑凉,一個胖子當著我的面吹牛统扳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畅姊,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼咒钟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了若未?” 一聲冷哼從身側響起朱嘴,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后萍嬉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乌昔,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年壤追,在試婚紗的時候發(fā)現(xiàn)自己被綠了磕道。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡行冰,死狀恐怖溺蕉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悼做,我是刑警寧澤疯特,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站肛走,受9級特大地震影響辙芍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羹与,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庶灿。 院中可真熱鬧纵搁,春花似錦、人聲如沸往踢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峻呕。三九已至利职,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘦癌,已是汗流浹背猪贪。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讯私,地道東北人热押。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像斤寇,于是被迫代替她去往敵國和親桶癣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容