開發項目中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嵌套造成計算高度錯誤。