遇到一個flutter項目無法正確構(gòu)建,生成必要文件(.android目錄等)、也無法從AS獨立窗口打開的問題
問題如圖:

發(fā)生問題的前置操作:我掛了梯子,安裝了flutter SDK,flutter doctor提示無法連接github,還改過git全局代理,在gitconfig文件內(nèi)生成了http.proxy及https.proxy地址,未另外安裝jdk,as內(nèi)默認使用了自帶的jdk11
解決辦法:清除git內(nèi)配置的代理,配置flutter的環(huán)境變量(?用戶變量?即可),下載pub文件到flutter SDK同級目錄并配置對應(yīng)的環(huán)境變量
PUB_HOSTED_URL? ? ?https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL? ? ?https://storage.flutter-io.cn
PUB_CACHE? ?pub文件路徑
使用get命令在?flutter項目根目錄內(nèi)?運行,生成必要文件:
flutter pub get
可能存在下載緩慢的問題,可開關(guān)梯子/或者清理緩存再試
flutter clean # 清理項目緩存
flutter pub cache repair # 修復(fù)包緩存
成功效果如圖:

建議使用如下git命令拉取帶有flutter項目的代碼
git clone --recursive <主項目倉庫地址>
如果項目沒拉齊全也可以用命令重新拉
git submodule init # 初始化子模塊配置
git submodule update # 拉取子模塊內(nèi)容
git submodule update --init --recursive # 遞歸拉取所有子模塊
最后生成了必要文件后,重新build還遇到了flutter編譯報錯,指向了flutter生成文件內(nèi)的問題
FlutterPlugin.kt:744:21 Unresolved reference: filePermissions
FlutterPlugin.kt:745:25 Unresolved reference: user
FlutterPlugin.kt:746:29 Unresolved reference: read
FlutterPlugin.kt:747:29 Unresolved reference: write
此類問題是由于flutter版本和gradle/jdk版本不兼容導(dǎo)致無法編譯,我用了最新的flutter SDK 3.38,但gradle是7.5-bin,as內(nèi)部jdk用的11,電腦JAVA_HOME指向了as自帶的jdk21,要么升級項目內(nèi)的jdk和gradle,要么降低flutter版本
最后降低flutter版本到3.10才解決了編譯問題。