背景
目標是用android studio + flutter 跑hello world
下載
android studio
我下載的是2024.3.2.15版本
最新版下載首頁就能下:下載 Android Studio 和應用工具 - Android 開發者 ?|? Android Developers
歷史版本可在歸檔列表下載:Android Studio 下載文件歸檔 ?|? Android Developers
注意,打開歸檔列表沒東西是因為網頁為中文,把語言改成英文,滑動到最底下選擇同意,就能看到歸檔列表了
flutter
我下載的是3.22版本
在歸檔列表可下載歷史版本:歸檔列表 | Flutter 中文文檔 - Flutter 中文開發者網站 - Flutter
版本
android studio: m版本
flutter sdk:3.22版本
android studio?
不同版本會有差異,我用emulator運行項目,ladybug運行emulator會提示下載haxm,haxm在github才能下,國內訪問github有時會訪問不了。最后卸載了l版本,下載了m版本
flutter
剛開始下了最新版(3.32),發現和gradle,kotlin有些不兼容,提示要用gradle9.0以上版本,但gradle9.0又找不到包,調了半天,無果。
后來卸了,裝了個3.22版本,調調能跑
困難
用flutter3.32+android studio m版本調了半天調不出來
配置
創建項目時flutter sdk path
創建flutter項目,會提示輸入flutter sdk path,這里填環境變量配置的那個bin目錄的上級目錄就可以
環境變量
這倆必選要配,不知道配哪可配用戶變量
這個可選配置,配flutter命令,配了可能方便些,任意cmd窗口都能執行flutter命令。找到flutter sdk的安裝路徑(解壓路徑),把bin目錄絕對路徑加到用戶變量的path下
gradle
配置點如下,此處gradle版本是8.6,android studio版本是m
gradle下載源配國內鏡像,如果用默認的services.gradle.org會超時
settings.gradle和build.gradle加上國內源,否則也可能超時
emulator
運行avd后可運行設備未顯示emulator
檢查android studio是否安裝cmdl tools,在settings下sdk tools底下找到command line tools字樣,若未安裝則勾選,然后點確認或apply,點完了會彈窗下載,安裝完comand line tools,退出android studio重新打開項目,重新運行avd,檢查可運行設備是否顯示avd
若還不行,可能licenses未接受,配了flutter環境變量前提下,打開一個cmd終端,輸入flutter doctor --android-licenses 處理license是接受還是拒絕,完成后再重試檢查是否能avd運行項目
項目運行
java和gradle版本不匹配
運行flutter doctor --verbose 檢查android chain下面的build版本,即java版本,再對照java版本找合適的gradle版本。我用了java21,gradle最開始用了7.6,提示gradle和java版本不兼容,把gradle換成8.6就好了
可提升點
運行速度
emulator 用gradle構建很慢,可能電腦性能一般,或者下載各依賴軟件太慢,可能都是在線下的,后續考慮此問題
其他問題
運行flutter項目報錯不兼容 需要gradle9.0以上版本
檢查flutter項目絕對路徑是否有中文,如果有中文改成英文
flutter使用provider報錯,提示Another exception was thrown: Tried to listen to a value exposed with provider, from outside of the widget tree.
將Provider.of<T>(context) 改為Provider.of<t>(context, listen: false)