Flutter錯(cuò)誤匯總

開(kāi)發(fā)項(xiàng)目中Flutter問(wèn)題總結(jié)

1.packages/flutter_tools/gradle/module_plugin_loader.gradle' as it does not exit報(bào)錯(cuò)

解決:

這個(gè)問(wèn)題直接flutter packages get ,可能是之前安裝包添加依賴沒(méi)有執(zhí)行下載包引起。

2.如果控制臺(tái)使用dart-sdk里自帶的工具命令出現(xiàn)command not found: dartdoc dartfmt dartanalyer類似這種的錯(cuò)誤。

解決:

這種情況是路徑不對(duì),檢查配置路徑,如果是mac,在命令行窗口運(yùn)行下ls $PATH,看下有沒(méi)有/dart-sdk/bin目錄,如果沒(méi)有需要.bash_profile去配置下并啟動(dòng)生效source .zshrc。如果是windows,直接去打開(kāi)環(huán)境變量確認(rèn)下是否有dart-sdk/bin路徑。

3.在pubspec中增加dependencies后,如果不自動(dòng)下載依賴包,需要手動(dòng)下載依賴包,否則運(yùn)行報(bào)錯(cuò)。

解決:

flutter packages get
flutter packages upgrade

4.error: Undefined name 'required' used as an annotation. (undefined_annotation at main.dart:9)

解決:

Required 在元包中被定義?;蛘咧苯邮褂?import package:meta/meta.dart 導(dǎo)入或者導(dǎo)入其他包含 meta 導(dǎo)出的包,例如 Flutter 的包 Flutter /material.dart。

5.Because new_trend depends on build_runner >=0.9.0 which requires SDK version >=2.0.0-dev.61 <3.0.0, version solving failed.

pub get failed (1)

解決:

pubspec.yaml中對(duì)應(yīng)的依賴版本號(hào)改為any,更新后,再在pubspec.lock中找到對(duì)應(yīng)版本號(hào)替換any。

5. 打?。篎lutter list return Instance of

解決:

在使用Flutter開(kāi)發(fā)時(shí),打印對(duì)象,總是出現(xiàn)Instance of,原因是沒(méi)有在bean里重寫(xiě)toString()方法。Flutter list return Instance of

6.Xcode12 iOS14 AppDelegate 調(diào)用startFlutterWithPlatform應(yīng)用會(huì)崩潰,Debug啟動(dòng)會(huì)閃退。

解決:

這是fluttersdk版本問(wèn)題引起,1.22版本已經(jīng)修復(fù),但是我們使用的是flutter_boost,目前使用過(guò)程中為了不升級(jí)flutter 或者 flutter_boost 在Xcode User-Defined 添加一項(xiàng)FLUTTER_BUILD_MODE= release 可以先使用到起,等官方適配后再切回來(lái)。但是flutter代碼斷點(diǎn)調(diào)試就不能用了,我目前選擇的還是用之前的xcode開(kāi)發(fā)。

參考:https://github.com/alibaba/flutter_boost/issues/871

7.Android 老的項(xiàng)目接入時(shí),報(bào)錯(cuò)誤Cause: assert appProject != null

解決:

歷史項(xiàng)目的主 Module 是 名字 更換為 app 即可。

8.AndroidStudio編譯時(shí)報(bào)錯(cuò):Timeout waiting to lock artifact cache 。。。

解決:

Android Studio ->File -> Invalidate Caches/Restart ->Invalidate and Restart

9.如果加載本地文件報(bào)錯(cuò)VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: Unable to load asset: assets/data/car_models.json。

解決:

找不到該文件,需要在pubspec.yaml中,assets:下添加 - assets/data/

assets

10.No Material widget found 問(wèn)題

解決:

需要Scaffold作為根布局,意為用Scaffold包裹起來(lái)即可。

@override
Widget build(BuildContext context) {
  return new Scaffold( //Material組件
    body: Container()
  );
}

11.Flutter Dart 報(bào)錯(cuò) ‘_InternalLinkedHashMap dynamic, dynamic‘ is not a subtype of type‘

解決方式:new Map<String, dynamic>.from(params)

12.RenderBox was not laid out: RenderFlex#1cf8a relayoutBoundary=up9 NEEDS-PAINT 'package:flutter/src/rendering/box.dart': Failed assertion: line 1694 pos 12: 'hasSize'

解決: 兩個(gè)ScrollView嵌套造成計(jì)算高度錯(cuò)誤。

13.使用Getx的時(shí)候,改變數(shù)組里對(duì)象屬性時(shí)頁(yè)面不刷新。

解決:

使用數(shù)組.refresh();

14. 混合傳值和回傳問(wèn)題

1.flutter boost:bool值問(wèn)題 和 Map問(wèn)題,傳遞數(shù)據(jù)類型盡量使用String。

15.域名代理測(cè)試問(wèn)題

解決:

使用代理測(cè)試時(shí),會(huì)有問(wèn)題。1.Android問(wèn)題可能第一次會(huì)出現(xiàn)接口問(wèn)題。 2.部分第三方比如圖片問(wèn)題,會(huì)訪問(wèn)不到,使用switchhost轉(zhuǎn)換不了指定域名,會(huì)訪問(wèn)線上。

16.flutter boost Android 監(jiān)聽(tīng)(FlutterBoost.singleton.channel.addEventListener)和通道(MethodChannel)時(shí)機(jī)問(wèn)題,有時(shí)FlutterBoost沒(méi)有注冊(cè)成功,會(huì)造成Native和Flutter傳遞數(shù)據(jù)失敗問(wèn)題。

解決:

1.通道(MethodChannel)這個(gè)需要在Native中引擎注冊(cè)成功后回調(diào)方法里調(diào)用,但是部分手機(jī)不行(三星),獲取不到。使用時(shí)候謹(jǐn)慎。

2.使用提供的監(jiān)聽(tīng)通知(addEventListener、sendEvent)時(shí),Android第一次會(huì)出現(xiàn)接收不到,不成成功情況,需要FlutterBoost所有方法執(zhí)行完后,自己新增一個(gè)監(jiān)聽(tīng)事件initPlugin,告知Native可以send數(shù)據(jù)過(guò)來(lái),否則還是會(huì)因?yàn)闀r(shí)機(jī)先后問(wèn)題造成錯(cuò)誤。

17.flutter頁(yè)面切換到主頁(yè)的tab中的某一個(gè)控制器,且該控制器里邊添加了Flutter的FlutterContainer切片(原生控制器中既有原生頁(yè)面又有flutter頁(yè)面)場(chǎng)景,會(huì)出現(xiàn)flutter頁(yè)面被壓縮變形情況。(iOS問(wèn)題)

解決:

每次切換的時(shí)候需要重新設(shè)置frame或者Constraints。

18.# [Invalid Podfile file: cannot load such file -- ../flutter_module/.ios/Flutter/podhelper.rb.]

解決:

進(jìn)入到Flutter_module工程,執(zhí)行 flutter clean,flutter pub get,然后回到iOS工程里面,執(zhí)行 Pod install即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容