flutter升级
今天记录一下自己升级2.10.3的过程,顺便帮大家踩个坑
因为我用的是fvm的版本控制工具。所以直接运行下面的命令就好
fvm install 2.10.3
当看到这张图的时候说明2.10.3已经安装完成
运行
fvm global 2.10.3
当看到这张图的时候说明2.10.3已经成为全局配置
此时运行
flutter doctor
这上面显示出来的检查结果中:
-
[√]
表示该项没有问题 -
[!]
表示该项存在部分问题 -
[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++
您还必须在此安装第三个链接:
您还可以Desktop development with C++
在安装 Visual Studio 后获取工具,然后导航到工具 -> 获取工具和功能 -> 使用 C++ 进行桌面开发
第二类第一个问题:
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 Studio
的 SDK Manager
,在 SDK Tools
中添加 Android SDK Command-line Tools(latest)
, 如下图所示:
问题二: X Android license status unknown.
这个问题的原因是 Flutter SDK
没有得到 Android SDK
的授权,解决的办法已经包含在问题的提示信息中。
在命令窗口中输入命令: flutter doctor --android-licenses
, 并全部回答 y
, 就可以了。
处理完以上两个问题后,再次运行 flutter doctor -v
检查 FLutter
运行环境, 过程如下:
重启vscode
切换项目版本为2.10.3
Kotlin 版本
首先就项目升级的第一个,也就是最重要的一个,就是升级你的 kotlin 插件版本,这个是强制的,因为之前的旧版本使用的基本都是 1.3.x
的版本,而这些 Flutter 2.10 强制要求 1.5.31
以上的版本。
buildscript {
- ext.kotlin_version = '1.3.50'
+ ext.kotlin_version = '1.6.0'
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 版本,这一步升级就必不可少。
强制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"
就可以了。
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
...
}
这就是我今天升级的时候遇见的一些问题,希望给一些需要帮助的朋友一个指引
- 点赞
- 收藏
- 关注作者
评论(0)