Flutter錯誤彙總 開發項目中Flutter問題總結

開發項目中Flutter問題總結

1.packages/flutter_tools/gradle/module_plugin_loader.gradle' as it does not exit報錯

解決:

這個問題直接flutter packages get ,可能是之前安裝包添加依賴沒有執行下載包引起。

2.如果控制檯使用dart-sdk裏自帶的工具命令出現command not found: dartdoc dartfmt dartanalyer類似這種的錯誤。

解決:

這種情況是路徑不對,檢查配置路徑,如果是mac,在命令行窗口運行下ls $PATH,看下有沒有/dart-sdk/bin目錄,如果沒有需要.bash_profile去配置下並啓動生效source .zshrc。如果是windows,直接去打開環境變量確認下是否有dart-sdk/bin路徑。

3.在pubspec中增加dependencies後,如果不自動下載依賴包,需要手動下載依賴包,否則運行報錯。

解決:

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 導入或者導入其他包含 meta 導出的包,例如 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中對應的依賴版本號改爲any,更新後,再在pubspec.lock中找到對應版本號替換any。

5. 打印:Flutter list return Instance of

解決:

在使用Flutter開發時,打印對象,總是出現Instance of,原因是沒有在bean裏重寫toString()方法。Flutter list return Instance of

6.Xcode12 iOS14 AppDelegate 調用startFlutterWithPlatform應用會崩潰,Debug啓動會閃退。

解決:

這是fluttersdk版本問題引起,1.22版本已經修復,但是我們使用的是flutter_boost,目前使用過程中爲了不升級flutter 或者 flutter_boost 在Xcode User-Defined 添加一項FLUTTER_BUILD_MODE= release 可以先使用到起,等官方適配後再切回來。但是flutter代碼斷點調試就不能用了,我目前選擇的還是用之前的xcode開發。

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

7.Android 老的項目接入時,報錯誤Cause: assert appProject != null

解決:

歷史項目的主 Module 是 名字 更換爲 app 即可。

8.AndroidStudio編譯時報錯:Timeout waiting to lock artifact cache 。。。

解決:

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

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

解決:

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

10.No Material widget found 問題

解決:

需要Scaffold作爲根佈局,意爲用Scaffold包裹起來即可。

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

11.Flutter Dart 報錯 ‘_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'

解決: 兩個ScrollView嵌套造成計算高度錯誤。

13.使用Getx的時候,改變數組裏對象屬性時頁面不刷新。

解決:

使用數組.refresh();

14. 混合傳值和回傳問題

1.flutter boost:bool值問題 和 Map問題,傳遞數據類型儘量使用String。

15.域名代理測試問題

解決:

使用代理測試時,會有問題。1.Android問題可能第一次會出現接口問題。 2.部分第三方比如圖片問題,會訪問不到,使用switchhost轉換不了指定域名,會訪問線上。

16.flutter boost Android 監聽(FlutterBoost.singleton.channel.addEventListener)和通道(MethodChannel)時機問題,有時FlutterBoost沒有註冊成功,會造成Native和Flutter傳遞數據失敗問題。

解決:

1.通道(MethodChannel)這個需要在Native中引擎註冊成功後回調方法裏調用,但是部分手機不行(三星),獲取不到。使用時候謹慎。

2.使用提供的監聽通知(addEventListener、sendEvent)時,Android第一次會出現接收不到,不成成功情況,需要FlutterBoost所有方法執行完後,自己新增一個監聽事件initPlugin,告知Native可以send數據過來,否則還是會因爲時機先後問題造成錯誤。

17.flutter頁面切換到主頁的tab中的某一個控制器,且該控制器裏邊添加了Flutter的FlutterContainer切片(原生控制器中既有原生頁面又有flutter頁面)場景,會出現flutter頁面被壓縮變形情況。(iOS問題)

解決:

每次切換的時候需要重新設置frame或者Constraints。

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

解決:

進入到Flutter_module工程,執行 flutter clean,flutter pub get,然後回到iOS工程裏面,執行 Pod install即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章