最近在學習 Flutter, 遇到一些奇奇葩葩的問題,各類買家秀與賣家秀使人懵逼,明明別人的代碼也是這樣寫~~~~~~~~html
其實這個引入步驟比較簡單前端
flutter create -t module flutter_module
複製代碼
settings.gradle
文件setBinding(new Binding([gradle: this]))
evaluate(new File(
new settingsDir.parentFile,
'flutter module的目錄/.android/include_flutter.groovy'))
))
複製代碼
build.gradle
配置文件中添加依賴implementation project(':flutter')
複製代碼
總體配置就這麼簡單,可是運行的時候的時候,項目掛了,出現瞭如下錯誤android
錯誤: 程序包android.support.annotation不存在
錯誤: 找不到符號
符號: 類 Fragment
錯誤: 找不到符號
符號: 類 NonNull
位置: 類 FlutterFragment
錯誤: 方法不會覆蓋或實現超類型的方法
錯誤: 找不到符號
符號: 方法 getArguments()
位置: 類 FlutterFragment
錯誤: 方法不會覆蓋或實現超類型的方法
錯誤: 方法不會覆蓋或實現超類型的方法
複製代碼
查看編譯後的源碼,確實 flutter_module 中一些依賴包不存在 bash
google 一番以後發現是 Android 包管理機制的問題,若是咱們在安裝 Android Studio
的時候勾選了 Androidx
,會默認使用 androidx
管理, 如圖 工具
對於這個,解決方案有學習
Android Studio
從新安裝,這種比較麻煩Android Studio
工具實現代碼 遷移,詳情可參考 遷移指南 可是這些步驟仍是不能解決個人問題,個人flutter_module 包依舊有一些舊的引用代碼形式,仔細分析,個人 flutter_module 是經過 flutter create -t module
這種方式實現的,多是這種命令生成的代碼是舊的包管理機制,猜測有沒有生成 androidx 機制的呢,Google 以後,發現真的有flutter create --androidx -t module flutter_module
複製代碼
完美解決,山重水複疑無路???不存在的,果然,解決方案總比問題多gradle
Process 'command 路徑/flutter/bin/flutter'' finished with non-zero exit value 1 複製代碼
這個問題就更懵逼了,可是能夠經過ui
build clean
複製代碼
解決,緣由還不是很清楚this
其實對於 前端同窗,學習 flutter 過程當中,可能更多的挑戰是對原生陌生,仍是須要了解一些原生開發知識,不過,不少問題 google 如下,冷靜分析下仍是能解決google