安装IntelliJ后Android Studio中Flutter/Dart语法高亮失效且补全功能异常
Flutter项目Dart代码无语法高亮、跳转、补全功能
我的Flutter项目中的Dart代码不再有语法高亮效果,也无法点击跳转声明或使用代码自动补全功能,比如输入StreamBuilder(后按回车无法自动生成StreamBuilder对应的widget代码。
下方是代码示例,正常情况下不同代码元素会显示不同的颜色:
该问题是我安装IntelliJ之后出现的,我当初安装IntelliJ是为了编写Firebase Functions所需的JavaScript代码。
目前我已经尝试过以下操作,但均未解决问题:
- 卸载并重新安装Android Studio
- 执行无效缓存并重启操作
- 重启分析服务器
- 检查确认「语言和框架」选项下Dart和Flutter的路径配置正确
- 新建Flutter项目,新项目所有功能正常,但将原有代码复制到新项目中问题依旧存在
我使用的是最新版本的Android Studio。
补充说明
目前看来我的插件确实存在一些问题,但如下图所示,我已经正确配置了Flutter和Dart的路径。
该问题大概率和IntelliJ相关,因为我点击flutter doctor输出结果中的链接时,会跳转到JetBrains官网。
flutter doctor输出如下:
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.3 20E232 darwin-x64, locale da-DK) • Flutter version 2.2.3 at /Users/jeffmayn/Desktop/Development/flutter • Framework revision f4abaa0735 (10 weeks ago), 2021-07-01 12:46:11 -0700 • Engine revision 241c87ad80 • Dart version 2.13.4 [!] Android toolchain - develop for Android devices (Android SDK version 30.0.3) • Android SDK at /Users/jeffmayn/Library/Android/sdk • Platform android-30, build-tools 30.0.3 • Java binary at: /Library/Java/JavaVirtualMachines/jdk-15.0.1.jdk/Contents/Home/bin/java • Java version Java(TM) SE Runtime Environment (build 15.0.1+9-18) ✗ Android license status unknown. Run `flutter doctor --android-licenses` to accept the SDK licenses. [✓] Xcode - develop for iOS and macOS • Xcode at /Applications/Xcode.app/Contents/Developer • Xcode 12.5.1, Build version 12E507 • CocoaPods version 1.10.1 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [!] Android Studio (version 2020.3) • Android Studio at /Applications/Android Studio.app/Contents • 可在JetBrains插件市场搜索安装Flutter、Dart插件 ✗ Unable to find bundled Java version. • 尝试更新或重新安装Android Studio [✓] Connected device (2 available) • Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator) • Chrome (web) • chrome • web-javascript • Google Chrome 93.0.4577.63 ! Doctor found issues in 2 categories. Process finished with exit code 0


解决方案
1. 清理项目本地配置
首先清理项目级损坏缓存:
- 打开出问题的Flutter项目根目录,删除
.idea文件夹、.dart_tool文件夹和pubspec.lock文件 - 终端进入项目根目录,依次执行
flutter clean和flutter pub get - 重启Android Studio重新打开该项目,等待索引构建完成后验证功能是否恢复
2. 修复Android Studio捆绑Java识别异常
安装IntelliJ后修改了全局Java环境关联,覆盖了AS自带的Java路径,macOS下可手动指定AS的运行JDK:
- 打开访达进入「应用程序」,找到Android Studio.app右键选择「显示包内容」,进入
Contents/jre目录确认存在jdk文件夹 - 终端执行命令:
export STUDIO_JDK=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home - 重启Android Studio后重新校验flutter doctor警告是否消失
3. 解决IDE插件冲突
- 打开Android Studio插件管理,先禁用Flutter和Dart插件,重启AS后再重新启用两个插件,再次重启AS
- 如果需要保留IntelliJ,打开IntelliJ的插件管理,禁用其中的Flutter和Dart插件,避免两个JetBrains系IDE的插件配置互相干扰;如果不需要使用IntelliJ,卸载后删除
~/Library/Application Support/JetBrains/和~/Library/Caches/JetBrains/两个目录清除全局残留配置
4. 修复剩余flutter doctor警告
终端执行flutter doctor --android-licenses,按照提示输入y同意所有安卓许可证,解决工具链的警告问题。
内容的提问来源于stack exchange,提问作者jeffmayn
相关产品推荐
相关产品推荐

