Flutter个人填坑指南详解

41次阅读

共计 1895 个字符,预计需要花费 5 分钟才能阅读完成。

Flutter 个人填坑指南详解

第一步

安装解压完 flutter 后,按照 flutter 的官方教程,首先需要在你的 IDE 或者编译器(vscode)里安装插件,分别是 flutter 和 dart 的插件(我使用的是 AS,所以下文以 AS 为例)

第二步 — 配置环境变量

由于在国内访问 Flutter 有时可能会受到限制,Flutter 官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中

第三步

进入 Flutter 的目录中,运行命令行脚本

第一个问题!!!!

运行 flutter doctor 后,你会发现它提示你✗ Android license status unknown.

因此我们应该尝试运行 flutter doctor –android-licenses

但是会报错,提示你应该去 sdk 目录进行 sdkmanager –update,运行 sdkmanager –update 时又会出现找不到或无法加载主类的问题

解决方案

经过不断的 google,在 GitHub flutter 的 i16025 issues 中 有人提到 这是 jdk 版本的问题,原文(OpenJDK 10 was superseeded by OpenJDK 11, which doesn’t implement java.se.ee at all. This means that the hack of adding --add-modules java.se.ee doesn’t do anything anymore. It also means that OpenJDK 10 will be automatically removed from your system and replaced with OpenJDK 11 the next time you update, if your updates are configured properly.

To fix that, modify sdkmanager to use Java 8 by setting JAVA_HOME inside sdkmanager to a Java 8 installation. It’s still, by default, at ~/Android/Sdk/tools/bin/sdkmanager.)

—- 原先我是 jdk11.0.2,因此 我降级到 jdk1.8。

并且 按照 issues 中其他人的解决方案来看,我们应该修改 sdkmanager.dat 文件中的一行

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions'

就我而言修改 dat 文件并没有效果,因此我保持了 dat 文件原样,并将 JDK—->1.8。

出现了第二个问题

当我完成上面的步骤后,执行 flutter doctor –android-licenses 出现了从远程仓库下载失败的问题,我为此十分纠结,因为我电脑本身已经 FQ,按理说不应该是下载失败,无法下载的问题,我尝试运行 flutter doctor -v 在检查 Android license 时出现了 ”this is taking an unexpectedly long time” 的问题,顿时头晕脑胀。然后静下心来,慢慢排查问题,之前的步骤都没有错误操作,为什么会卡在 this is taking an unexpectedly long time 呢???

最终在 flutter 的 issues 27310 中找到了我的答案 —– 原文(Recently I was suffering from the same issue but now it is solved as I updated with the latest Flutter SDK and reboot my laptop.

最终解决方案

就像 issues 中所说 我们需要更新 flutter(我还是从官网下的最新版,不知道为什么还要更新 —- 手动滑稽)在 flutter 的命令行中 输入 flutter upgrade -force。进行更新。等待一会后就会更新成功。

之后我们运行 flutter doctor -v

现在已经没有之前的 this is taking an unexpectedly long time 问题,只显示我们需要运行 flutter doctor –android-licenses,那我们之前运行 flutter doctor –android-licenses 是会出错的,那现在呢???

奈斯,现在终于出现我们想要的结果了,接受所有的 license 后,我们再次运行 flutter doctor -v

至此问题全部解决,我们可以尝试运行一下官方的 flutter demo 了

AS 界面

运行结果

正文完
 0