1.下載安裝vscode、flutter sdk、安裝vscode相關插件、android sdk,這些網上有教程,比如https://blog.csdn.net/SVNzK/article/details/84314226
2.不想安裝android studio,所以android sdk是單獨下載的,模擬器直接使用其中自帶的avd manager,在此推薦一下android sdk的下載地址https://www.androiddevtools.cn/
以上算是軟件環境基本完成搭建,然后就是檢查和初次運行,這時候就是各種問題的開始:
1.flutter doctor檢查報錯:
licence not accepted,解決的命令是flutter doctor --android-licenses,然后一路選‘y’
衍生問題是需要update android sdk。。。過程中會提示sdk里的tools文件夾無法刪除,手動重新命名tools為tool-->重新執行tool內的sdkmanager進行update-->把tools內容覆蓋到tool內,刪除tools-->重新命名tool為tools
2.新建flutter項目后的運行問題
(1)在vscode里啟動模擬器會一直停留在android logo界面,並且不能新建設備
原因待研究,目前的解決方法是先在外部用avd manager打開設備,然后進行flutter run
(2)android sdk文件夾中的sdk manager 和 avd manager無法開啟,而剛下載下來時是可以的
原因是現在sdk更新必須通過android studio,然后不再支持avd manager單獨使用,網上的各種解決方法里要么說是改android.bat文檔(改的內容還不一樣,而且我的文檔里也找不到),要么說是把單獨下載的sdk tools文件夾直接覆蓋的。。。靈機一動,我把android.bat文檔直接換回了更新之前的,然后sdk manager 和 avd manager就能打開了
但其實還是有問題的,因為更新后的sdk目錄是與之前不同的,比如模擬器目錄就是從tools目錄里移出來了,但因為我保留了舊版的tools目錄的部分未覆蓋內容,使用舊android.bat文檔調用的模擬器就應該還是在tools路徑內的舊模擬器
(3)Initializing gradle...停留問題,是由牆引起的,更改gradle版本和配置倉庫,或者手動下載需要的gradle版本至本地即可,可參考網上的各種解決方法
(4)flutter run運行過程報錯,Error occurred during initialization of VM Could not reserve enough space for 1572864KB object heap
解決方法是修改gradle.properties中的虛擬內存配置,參考https://blog.csdn.net/huyidada/article/details/57075222
(5)flutter run運行后,應用成功安裝進模擬器,然而白色閃屏報錯退出,查終端報錯內容主要為:
E/flutter ( 1346): [ERROR:flutter/shell/platform/android/android_context_gl.cc(165)] Could not choose an EGL configuration.
E/flutter ( 1346): [ERROR:flutter/shell/platform/android/android_context_gl.cc(53)] EGL Error: EGL_SUCCESS (12288)
F/flutter ( 1346): [FATAL:flutter/shell/platform/android/platform_view_android.cc(28)] Check failed: android_surface_. Could not create an OpenGL, Vulkan or Software surface to setup rendering.
解決方法是使用命令flutter run --enable-software-rendering -d all代替flutter run,貌似是跳過OpenGL了,參考:https://github.com/flutter/flutter/issues/22671
(6)復制別人代碼時發現的以下報錯,估計新手很容易犯,主要是main函數給搞丟了,加回去就可以解決,參考:https://stackoverflow.com/questions/50654820/flutter-could-not-prepare-to-run-the-isolate?rq=1
E/flutter ( 2747): [ERROR:flutter/shell/common/engine.cc(147)] Could not prepare to run the isolate.
E/flutter ( 2747): [ERROR:flutter/shell/common/engine.cc(112)] Engine not prepare and launch isolate.
E/flutter ( 2747): [ERROR:flutter/shell/platform/android/android_shell_holder.cc(138)] Could not launch engine in configuration.