flutter升级

举报
坚果派 发表于 2022/03/31 21:55:02 2022/03/31
【摘要】 今天记录一下自己升级2.10.3的过程,顺便帮大家踩个坑因为我用的是fvm的版本控制工具。所以直接运行下面的命令就好fvm install 2.10.3当看到这张图的时候说明2.10.3已经安装完成运行fvm global 2.10.3当看到这张图的时候说明2.10.3已经成为全局配置此时运行flutter doctor这上面显示出来的检查结果中:[√] 表示该项没有问题[!] 表示该项存在...

今天记录一下自己升级2.10.3的过程,顺便帮大家踩个坑

因为我用的是fvm的版本控制工具。所以直接运行下面的命令就好


fvm install 2.10.3


当看到这张图的时候说明2.10.3已经安装完成

image-20220311155144924


运行

fvm global 2.10.3

当看到这张图的时候说明2.10.3已经成为全局配置

image-20220311155305435

此时运行

flutter doctor

image-20220311160439825

这上面显示出来的检查结果中:

  • [√] 表示该项没有问题

  • [!] 表示该项存在部分问题

  • [X] 表示该项找不到或有严重错误

这个时候我们各个击破

第一类问题第一个:

Visual Studio - develop for Windows X Visual Studio not installed; 这是 Windows 开发所必需的。

https://visualstudio.microsoft.com/downloads/下载。

请安装“使用 C++ 进行桌面开发”工作负载,包括其所有默认组件


基本上是说,如果您想为 Windows 开发 Flutter 应用程序,则需要安装Visual Studio 2022,在安装 Visual Studio 2022 时,您需要下载:Desktop development with C++

您还必须在此安装第三个链接:https ://visualstudio.microsoft.com/downloads/

您还可以Desktop development with C++在安装 Visual Studio 后获取工具,然后导航到工具 -> 获取工具和功能 -> 使用 C++ 进行桌面开发

image-20220311160727628

第二类第一个问题:

POWERSHELL
[!] HTTP Host Availability
    X HTTP host https://maven.google.com/ is not reachable. Reason: An error occurred while checking the HTTP host:
      信号灯超时时间已到

这个可以忽略,国内网络目前无解,不影响开发使用。

POWERSHELL
[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at D:\Android\sdk
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

问题一( 如果 Android SDK 中没有安装 Android SDK Command-line Tools(latest) 才会有这个错误出现): X cmdline-tools component is missing

这个问题的原因是 Android SDK 中缺少了一个必需组件,打开 Android StudioSDK Manager,在 SDK Tools 中添加 Android SDK Command-line Tools(latest), 如下图所示:


image-20220311161236372

问题二: X Android license status unknown.

这个问题的原因是 Flutter SDK 没有得到 Android SDK 的授权,解决的办法已经包含在问题的提示信息中。

在命令窗口中输入命令: flutter doctor --android-licenses , 并全部回答 y, 就可以了。

处理完以上两个问题后,再次运行 flutter doctor -v 检查 FLutter 运行环境, 过程如下:

image-20220311161429313

重启vscode

切换项目版本为2.10.3

image-20220311155447630

Kotlin 版本

首先就项目升级的第一个,也就是最重要的一个,就是升级你的 kotlin 插件版本,这个是强制的,因为之前的旧版本使用的基本都是 1.3.x 的版本,而这些 Flutter 2.10 强制要求 1.5.31 以上的版本。

buildscript {
-    ext.kotlin_version = '1.3.50'
+    ext.kotlin_version = '1.6.0'

image-20220311155822514

Gradle 版本

因为 Kotlin 版本升级了,所以 AGP 插件必须使用最低 4.1.0 配合 Gradle 6.7 的版本,也就是:

classpath 'com.android.tools.build:gradle:4.1.0'
 /
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
​

因为以前的老版本使用的 AGP 可能是 AGP 3.x 配合 Gradle 5.x 的版本,所以如果升级了 Kotlin 版本,这一步升级就必不可少。

image-20220311160014049



强制V2


Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Warning
──────────────────────────────────────────────────────────────────────────────
Your Flutter application is created using an older version of the Android
embedding. It is being deprecated in favor of Android embedding v2. Follow the
steps at
​
https://flutter.dev/go/android-project-migration
​
to migrate your project. You may also pass the --ignore-deprecation flag to
ignore this check and continue with the deprecated v1 embedding. However,
the v1 Android embedding will be removed in future versions of Flutter.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The detected reason was:
​
  E:\work\dc-client\dc_ver2\android\app\src\main\AndroidManifest.xml uses `android:name="io.flutter.app.FutterApplication"`
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
​

这里如果你只需要简单删除 android:name="io.flutter.app.FutterApplication" 就可以了。

image-20220311161747240

image-20220311161621836


compileSdkVersion 30- compileSdkVersion 31


One or more plugins require a higher Android SDK version.
​
Fix this issue by adding the following to E:\work\dc-client\dc_ver2\android\app\build.gradle:
​
android {
​
  compileSdkVersion 31
​
  ...
​
}


这就是我今天升级的时候遇见的一些问题,希望给一些需要帮助的朋友一个指引

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。