Flutter項(xiàng)目卡死
使用"flutter doctor"命令常見(jiàn)會(huì)出問(wèn)題的就是Android toolchain和Xcode税娜,這兩個(gè)問(wèn)題的解決方式在報(bào)錯(cuò)中的英文提示都有寫(xiě)明朽砰,存在issue時(shí)前面會(huì)是"[!]"舟茶,解決完畢后變成如圖所示即代表成功,這樣創(chuàng)建Flutter項(xiàng)目即可流暢運(yùn)行
紅屏
Flutter項(xiàng)目運(yùn)行時(shí)如果有錯(cuò)不會(huì)crash叛复,而是顯示紅屏。如果代碼有問(wèn)題則修改正確邏輯,如果代碼沒(méi)有問(wèn)題可以點(diǎn)擊后面這個(gè)綠色的小圖標(biāo)即可正常運(yùn)行胚嘲。前面的黃色閃電圖標(biāo)則用于快速熱構(gòu)建,如果你不想每次都按綠色的按鈕重新執(zhí)行的話(huà)洛二,這是一個(gè)很便捷的選項(xiàng)
資源assets
當(dāng)你在引入資源時(shí)馋劈,如果未能成功運(yùn)行預(yù)期結(jié)果,首先看是否在pubspec.yaml文件中進(jìn)行注冊(cè)晾嘶,如果你已經(jīng)注冊(cè)還未能顯示妓雾,則要注意assets前要加空格,assets不能和flutter同級(jí)变擒,assets下面的資源引入里君珠,"-"后也要加空格寝志。一個(gè)yaml文件中娇斑,一個(gè)層級(jí)只能有一個(gè)flutter策添,引入資源的flutter為最頂級(jí)的flutter,如果你前面的步驟都做對(duì)了毫缆,最后還沒(méi)有成功加載資源唯竹,最大可能問(wèn)題就出在這里
Flutter目錄下gradle報(bào)錯(cuò)
這個(gè)問(wèn)題似乎不影響編譯,如果你是強(qiáng)迫癥苦丁,改成下面這樣就好
flutter clean
這個(gè)命令用于清除一些依賴(lài)降低內(nèi)存浸颓,執(zhí)行時(shí)工程會(huì)標(biāo)紅,但是不用擔(dān)心旺拉,你在點(diǎn)擊綠色按鈕運(yùn)行時(shí)項(xiàng)目會(huì)自動(dòng)重新引入所需的依賴(lài)
AndroidManifest文件報(bào)錯(cuò)
如果你是新創(chuàng)建的Flutter項(xiàng)目产上,在你的項(xiàng)目中,應(yīng)該會(huì)看到AndroidManifest文件有如此多的報(bào)錯(cuò)蛾狗,以至于你根本無(wú)法在MainActivity中編寫(xiě)原生代碼晋涣,是因?yàn)镕lutter禁用了Android框架,你需要右鍵點(diǎn)開(kāi)下圖所示沉桌,在一個(gè)新的窗口中打開(kāi)android工程即可編寫(xiě)原生代碼
registerWith(this)報(bào)錯(cuò)
新版本此方法無(wú)法解析谢鹊,要改成registerWith(new FlutterEngine(this));
無(wú)法使用getFlutterView()
我們獲取MethodChannel時(shí),要傳進(jìn)BinaryMessenger留凭,但是由于MainActivity繼承的FlutterActivity在io.flutter.embedding.android包下佃扼,這個(gè)包里沒(méi)有g(shù)etFlutterView()方法,所以不能使用getFlutterView()獲取BinaryMessenger蔼夜,只有io.flutter.app.FlutterActivity包的FlutterActivity才有g(shù)etFlutterView()方法兼耀。既然如此,那么我們就需要把getFlutterView()方法改成getFlutterEngine().getDartExecutor().getBinaryMessenger()即可
2021.7.27記錄求冷,后續(xù)若有問(wèn)題則繼續(xù)更新