【原创】MacOS flutter doctor 检测不到 Android Studio 4.1 的插件问题

前言

1、概述

最近准备尝试一下已经逐渐完善的 flutter,至少从版本号上已经 1.0 往上了,代表着大部分功能已经完备了。

没想到,在刚开始环境搭建这一个环节上就已经让我陷入了深坑。

好在 flutter 是一个开源项目,所以开源项目遇到问题就是从入口程序或入口脚本一层层地进行调试查找~

2、相关环境

  • MacOS 10.15.7
  • Android Studio 4.1.1
  • Jetbrains Toolbox 1.18
  • Flutter 1.22.3

问题描述

安装完 flutter 后,还需要安装 flutter 开发环境相关的工具,比如安装 Android Studio 以及 flutter、dart 插件。可是我明明已经安装了 flutter 与 dart 插件,使用 flutter doctor 检测却一直显示没有安装…

安装如下:

我尝试了把两个插件都卸载重装,重启电脑,都没解决。于是,就开始了挖源码的操作…

问题原因

1、原因一:Android Studio 4.1 及以后插件存放位置发生了变化

4.0 plugins location:

$HOME/Library/Application Support/AndroidStudio4.0

4.1 及以后版本的插件位置:

$HOME/Library/Application Support/Google/AndroidStudio4.1/plugins

2、原因二:Flutter stable 版本的代码中未处理 Android Studio 4.1 版本及以后插件位置变化的情况

flutter 源码分析

以下是 stable 1.22.3 版本的 android_studio.dart 代码中处理 Android Studio 插件的目录。

https://github.com/flutter/flutter/blob/stable/packages/flutter_tools/lib/src/android/android_studio.dart

以下是 master 分支的 android_studio.dart 代码中处理 Android Studio 插件的目录,处理了 4.1 版本及以后的 Android Studio 插件位置。

https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/android/android_studio.dart

综上:出现这个问题的原因就是,Android Studio 4.1 版本以后默认的插件存放位置发生了变化,而 Flutter 的当前 stable(1.22.3) 版的代码中还没有处理 MacOS 下 Android Studio 4.1 版本出现的变化。

但是 Flutter 的最新代码 master 分支中(1.24 preview 分支中也已经处理了这种情况)已经处理了这种情况。我本地安装的是 Android Studio 4.1.1 与 Flutter stable (1.22.3),所以会出现这个问题。

解决方法

基于上方分析的原因,如果你已经出现了这问题,解决的方法有两种:

1、将 Android Studio 的版本降到 4.1 以下,如 4.0

2、安装 flutter 新版本

git clone https://github.com/flutter/flutter.git -b flutter-1.24-candidate.11 --depth 1

注:

(1) flutter 在 flutter-1.24-candidate.9 也就是 1.24 的第 9 个候选版本中才修复了 Android Studio 4.1 插件安装位置发生变化的情况,请安装 flutter 新版本时要注意一下。

(2) 具体的 flutter 的新版本安装方法在此不详细介绍,请参考另一篇文章中的源码安装方法:【原创】MacOS 搭建 Flutter 开发环境(一)

附录

列举引用文献或者参考资料源

https://github.com/flutter/flutter/issues/67986
https://github.com/flutter/flutter/issues/11940

You may also like...

发表评论

电子邮件地址不会被公开。