前提:因為想要一起學(xué)習(xí)flutter,我把同事的flutter demo項目下載下來,一開始我以為是一個獨立的flutter項目,想的就是如何把它先運行起來,后來發(fā)現(xiàn)并不是。下面是記錄的使用android studio打開項目后遇到的一些問題,在此前我已經(jīng)把flutter sdk安裝完畢了,下面問題的結(jié)果大多都借鑒了很多其他博客的內(nèi)容。
1、運行時遇到的第一個問題,找不到設(shè)備

后來發(fā)現(xiàn)會提示這個錯誤,有其他flutter正在運行,試了下打開控制臺,把Dart進(jìn)程都關(guān)閉,在flutter->bin->cache目錄下刪除了lockfile文件,然后重啟as,打開項目發(fā)現(xiàn)可以找到設(shè)備了,目前就是這么解決的
2、第二個問題dart文件有很多紅色的部分,根本運行不起來,錯誤如下
Flutter: 'package get' has not been run; 'Pub get' has not been run

上網(wǎng)查的意思是說flutter運行需要的依賴和一些包沒有下載安裝,理論上點擊上面的get dependenceies就可以安裝
但是我點擊了之后發(fā)現(xiàn)沒有用,基本是沒有下載,原因也就和android一樣,庫國外的地址限制,那就需要配置flutter環(huán)境變量,也就是配置下載的的地址
在網(wǎng)上看很多人說直接open .bash_profile然后配置,但是我在windows目錄下面也沒找到這個文件,只能在環(huán)境變量里面配置了
右鍵我的電腦,選擇屬性找到環(huán)境變量,先在path里面加入flutter sdk的bin路徑
然后再新建變量PUB_HOSTED_URL=https://pub.flutter-io.cn和FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
然后再點擊get dependenies再重啟android studio就確實是可以了
3、依賴包下載下來了,但是運行失敗,報錯如下
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
flutter:unable to find valid certification path to requested target
網(wǎng)上看了很多博客說是證書問題,但是我覺得可能并不是適用于我本地的flutter和android,可能還是倉庫配置的問題,后來看了一些博客找靈感,里面有一個評論說先執(zhí)行以下flutter doctor試試,因為我之前安裝環(huán)境看了flutter的官方網(wǎng)站,當(dāng)時我的理解是如果不使用命令行就不用對flutter進(jìn)行環(huán)境變量配置,但是看到flutter doctor在里面也是有很多的介紹,看來是對flutter環(huán)境的一個檢驗命令,然后剛才我也配置好環(huán)境變量了,就直接執(zhí)行了這個命令,發(fā)現(xiàn)確實有嘆號沒有準(zhǔn)備好的地方
flutter doctor顯示的問題如下

根據(jù)提示需要在Android Studio中啟動SDK Manager,切換到sdk tools,去掉選項Hide Obsolete Packages,選擇安裝Android SDK Tools (Obsolete),Android SDK Tools被廢棄了,但是好像Flutter還需要其提供支持,然后apply即可。但是即使做完了這個,還是會顯示gradle 3.5.0下載不下來的問題


4、gradle3.5.0下載不下來
更改flutter項目里.android里面的build.gradle文件,更改build.gradle里面?zhèn)}庫的地址,把google和jcenter注釋掉,buildscript和allprojects的都需要改,倉庫連接改成之前用過的能用的倉庫就好,我因為直接改成公司倉庫了,就不貼出來了,沒有參考意義,看網(wǎng)上很多都是使用的阿里云鏡像。需要注意的是這個文件應(yīng)該是生成的,每次進(jìn)行flutter clean可能會重新生成這個文件,就不行了
然后再對flutter sdk的配置文件進(jìn)行更改,該文件在Flutter安裝目錄/packages/flutter_tools/gradle/flutter.gradle

然后執(zhí)行flutter run終于是可以了