IntelliJ中Flutter项目编译器警告不一致,如何更新编译器?
这种情况大概率不是编译器版本过时,而是每个项目的Dart分析配置或绑定的SDK版本不同,按以下步骤排查:
检查项目的
analysis_options.yaml文件
Dart Analysis的警告规则由项目根目录下的这个文件控制,不同项目的规则配置可能存在差异。比如提示const关键字的项目,大概率是在该文件中启用了prefer_const_constructors这类严格规则,而其他项目要么没有这个文件(使用默认规则),要么规则配置更宽松。你可以把规则一致的项目的analysis_options.yaml复制到其他项目,或者统一编辑规则内容来对齐标准。确认项目绑定的Flutter/Dart SDK版本
即使全局执行了flutter upgrade,单个项目可能仍绑定着旧版本的SDK:- 在IntelliJ中打开项目,依次点击
File > Project Structure > Project Settings > Project,查看项目使用的Flutter SDK路径是否和flutter doctor输出的路径一致; - 也可以进入项目根目录的终端,执行
flutter --version,对比全局版本。如果不一致,执行flutter pub get,或者在IntelliJ右侧的Flutter面板中切换到升级后的SDK版本。
- 在IntelliJ中打开项目,依次点击
重置IntelliJ的分析缓存
缓存异常也可能导致分析结果不一致。点击File > Invalidate Caches...,选择Invalidate and Restart,重启IDE后重新让Dart分析项目。检查IntelliJ的全局Dart/Flutter配置
打开Settings > Languages & Frameworks > Dart,确保勾选Enable Dart support for the project,且Dart SDK path指向升级后的SDK;再进入Settings > Languages & Frameworks > Flutter,确认Flutter SDK path正确,点击Run Flutter Doctor排查配置问题。
内容的提问来源于stack exchange,提问作者Bobin

