在我們QQ群(892398530)中總會遇到各種各樣的問題,現(xiàn)在將一些常見問題總結(jié)一下,以供大家學習。
一、flutter run或者flutter packages get 卡住了
安裝Flutter的時候一定沒看文檔,由于你懂的原因,國內(nèi)使用Flutter需要配置鏡像。為PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL配置下指定地址。目前來有兩個鏡像可供選擇:
//上海交通大學 Linux 用戶組
FLUTTER_STORAGE_BASE_URL: https://mirrors.sjtug.sjtu.edu.cn
PUB_HOSTED_URL: https://dart-pub.mirrors.sjtug.sjtu.edu.cn
//Flutter 社區(qū)
FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn
PUB_HOSTED_URL: https://pub.flutter-io.cn
至于選哪個,看你愛好了。
在Windows上就是配置環(huán)境變量了。以Windows10為例,右擊此電腦,依次選擇選擇屬性->高級系統(tǒng)設(shè)置->環(huán)境變量,

然后就是這張圖了:

至于為當前用戶還是系統(tǒng)創(chuàng)建環(huán)境變量,看你心情:


對MacOS或者Linux來說,運行flutter命令前可以這樣:
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
當然了這只對當前終端有效,如果想一勞永逸可以將上述環(huán)境變量添加到/etc/profile或者~/.bashrc中:
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
二、License for package Android SDK Build-Tools 28.0.3 not accepted.
運行flutter doctor之后有如下提示:

無非就是要你同意一下android-licenses,我們接著運行: flutter doctor --android-licenses,然后一頓yes就可以了。

三、gradle無法下載依賴
四、_是什么意思
經(jīng)常在看到類似如下所示的代碼:
fluwx.responseFromShare.listen((_) {
//do something
});
所以,_到底是什么?這個_就是一個普通參數(shù),和a,b,c這樣的參數(shù)實質(zhì)是一樣的。一般來說,被命名為_的變量一般來說是不會被引用的,相當于一個占位符,是一種不成文的規(guī)定,類似的規(guī)定也可見于golang,kotlin等語言中。
五、type 'String' is not a subtype of type 'int' in type cast
沒什么可說的,就是類型轉(zhuǎn)換錯誤,常見于json解析中。除了仔細檢查別無選擇。
六、運行android時提示Bad UTF-8
引起這個問題的原因太多了,不好詳述。但是我可以告訴你一個辦法。最簡單的就是安裝一個AndroidStudio,然后在項目上右鍵,選擇Flutter:

然后點擊Run:

一般來說,運行一下,控制臺就會告訴你究竟有什么問題。
當然了,如果不想安裝AndroidStudio也是可以的,前提是你會玩終端,首先進入android目錄,然后運行:
./gradlew assembleDebug
在Windows下:
gradlew assembleDebug
終端會給出相應(yīng)的錯誤信息,一般來說都能解決問題。
六、Android resource linking failed
如下圖:

修改compileSdkVersion到指定版本,上圖就是要改到28。找到build.gradle,具體位置如下:

然后修改
compileSdkVersion版本:
八、我的java文件怎么全飄紅了
我的java文件全紅了,而且自動提示也沒了。

你為什么要在Flutter工程中編寫原生代碼?請用AndroidStudio或者Xcode打開對應(yīng)的原生項目。至于怎么打開請看第六條。
如果閣下練過鐵頭功,非想在Flutter工程寫Android的原生代碼,那你可以打開AndroidStudio是設(shè)置,找到
Flutter選項,然后勾上下面的選項試試:
這只是一個實驗性的選項。
八、編寫插件怎么沒提示
看第七條去。
九、有沒有上線的Flutter App啊
有。大廠有閑魚,now直播,美團外賣及京東金融等應(yīng)用,這幾個是混合開發(fā),小廠有排班日歷,這是一個純flutter應(yīng)用。
還有更多的請點擊這里。
最后
寫了這么多,就不能關(guān)注一下微信公眾號?
