Flutter升级3.0

本文详细介绍了Flutter应用从旧版本升级到新版本的步骤,包括执行`flutter upgrade --force`和`flutter pub upgrade`命令,修改Android Gradle版本、Kotlin版本以及编译SDK版本,处理Gradle用户家目录问题,以及解决编译过程中遇到的各种插件和依赖问题。此外,还提及了遇到困难时如何回退版本的建议,特别强调了升级过程中可能遇到的华为推送插件兼容性问题。

 

一、升级

步骤如下:

以Android Studio为例,

1、在Terminal执行命令  flutter upgrade --force

2、执行 flutter pub upgrade,如果Dart Analysis中有错误,执行不了的话,先解决问题,然后执行,此时多是一些方法或包名的更改,如果不知道的话可以百度一下,版本跨度大的话升级的内容比较多,此处需要耗费一些时间,但宗旨不变,就是一些方法或包名的更改

3、修改Android gradle,flutter3.0建议gradle在7.0+

 

他们的对应关系如下 

所以改为如下,⚠️如果有推送,华为推送的插件的版本需要到最新

 

 华为推送插件不升级到最新的话,编译的时候会出现一个问题

 In plugin 'com.huawei.agconnect' type 'com.huawei.agconnect.agcp.AGCPluginTa.......

4、升级kotlin版本,尽可能的最新,不是最新也不能太低

 5、修改compileSdkVersion为31

6、将<meta-data android:name="flutterEmbedding" android:value="2"/> 移到入口activity下

7、执行flutter  clean,然后执行flutter pub  get

8、将flutter项目的Android项目打开

 9、等待编译,

10、如果有幸编译通过,请执行运行,如果再有幸运行成功,那真的是有幸!你完成了升级!

二、问题处理

非常不幸,你来到了这里。问题比较多,各自的问题也可能不一样,问题不一样的可自行百度

1、

Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8

gradle7.0需要java11,这个在setiing里面改一下就行

2、然后就能继续编译了,此处要注意上图的Gradle user home要与你前面配置的一致

3、如果有幸编译通过,那你也升级完成了,没有通过的话看报错信息,报错中一般都有插件的的名字,去Dart packages中查询最新的插件版本,在flutter项目的pubspec.yaml中修改版本。

⚠️ 有些插件虽然没有更新版本,但去github中去看看,就有人提相同的问题

4、手动替换插件版本

5、重复第一步中的7,8,9,10。

6、如果编译还是有问题,看报错原因,一般都是插件问题,当然也可能是Android项目中的

implementation引入的项目版本问题,总之一般都是引入的三方版本问题,继续查找替换,重复执行第二步中的3,4,5

三、问题太多、太难,实在处理不了,回退版本。

      我没有回退,所以没有发言权,因为我升级之前就做好了决定——开弓没有回头箭!真实原因是因为我看到有人说回退了环境变量也需要重新配置,索性就硬着头皮升级了。 如果有需要回退的请自行百度一下,这里就不贴链接了

要让您的 Windows 系统支持现代 PowerShell 功能(如 `Invoke-WebRequest` 和 `ConvertFrom-Json`),您需要将 **PowerShell 从 2.0 升级3.0 或更高版本**。 以下是针对不同操作系统的详细升级指南,适用于: - Windows 7 SP1 - Windows Server 2008 R2 SP1 - (不适用于 Windows Vista 或更早系统) --- ## ✅ 为什么需要升级 PowerShell? | 功能 | 所需 PowerShell 版本 | |------|------------------| | `Invoke-WebRequest` | PowerShell 3.0+ | | `ConvertFrom-Json` | PowerShell 3.0+ | | 支持现代脚本语法 | PowerShell 3.0+ | > ❗ Windows 7 默认安装的是 PowerShell 2.0(不支持 JSON 和 Web 请求),必须手动升级。 --- # ✅ 步骤一:确认当前 PowerShell 版本 打开 CMD 或 PowerShell,运行: ```cmd powershell -Command "$PSVersionTable.PSVersion" ``` 输出示例: ``` Major Minor Build Revision ----- ----- ----- -------- 2 0 -1 -1 ``` 👉 如果是 `2.0`,则必须升级。 --- # ✅ 步骤二:升级路径选择(推荐 WMF 4.0) 微软通过 **Windows Management Framework (WMF)** 提供 PowerShell 升级包。 | 目标版本 | 推荐安装包 | |---------|------------| | PowerShell 3.0 | WMF 3.0 | | PowerShell 4.0 | WMF 4.0 ✅(推荐)| | PowerShell 5.1 | WMF 5.1 | 📌 **建议直接安装 WMF 4.0**,因为它: - 包含 PowerShell 4.0 - 更稳定、兼容性好 - 支持生产环境 --- ## 🔧 安装步骤(以 Windows 7 SP1 为例) ### 1. 检查系统要求 ✅ 必须满足以下条件: | 要求 | 是否必需 | |------|--------| | Windows 7 SP1 | ✔️ 是 | | .NET Framework 4.0 或以上 | ✔️ 是 | | x64 或 x86 架构 | ✔️ | | 至少 512MB 内存 | ✔️ | > 💡 查看系统版本: > `Win + R` → 输入 `winver` → 回车 --- ### 2. 下载 Windows Management Framework 4.0 官方下载地址(Microsoft): 👉 https://www.microsoft.com/en-us/download/details.aspx?id=40855 文件名: - `Win7-KB2819745-x64.zip`(64位) - `Win7-KB2819745-x86.zip`(32位) 📌 解压后得到 `.msu` 文件,例如:`Win7-KB2819745-x64.msu` --- ### 3. 安装前准备 #### (1)安装 .NET Framework 4.0(如果未安装) 下载地址: 👉 https://dotnet.microsoft.com/download/dotnet-framework/net40 或使用离线安装包: - `dotNetFx40_Full_x86_x64.exe` #### (2)以管理员身份运行安装程序 右键点击 `.msu` 文件 → “以管理员身份运行” --- ### 4. 安装过程 双击 `.msu` 后会自动弹出安装向导: 1. 点击“下一步” 2. 勾选“我接受许可条款” 3. 点击“安装” 4. 等待完成(可能需要重启) > ⏱️ 安装时间:5–15 分钟,取决于系统性能 --- ### 5. 验证是否升级成功 重启电脑后,运行: ```cmd powershell -Command "$PSVersionTable.PSVersion" ``` 你应该看到类似输出: ``` Major Minor Build Revision ----- ----- ----- -------- 4 0 -1 -1 ``` 🎉 成功升级到 PowerShell 4.0! 现在你可以使用: ```powershell Invoke-WebRequest -Uri "https://example.com" -OutFile "file.txt" $object = ConvertFrom-Json &#39;{ "name": "flutter" }&#39; ``` --- # ✅ 可选:升级到 PowerShell 5.1(最新版 for Win7) 虽然 WMF 4.0 已足够,但你也可以进一步升级到 **PowerShell 5.1**(功能更强)。 ### 下载地址: 👉 https://www.microsoft.com/en-us/download/details.aspx?id=54616 文件名: - `Win7-KB3191566-x64.msu`(64位) - `Win7-KB3191566-x86.msu`(32位) ⚠️ 注意: - 必须先安装 WMF 4.0 才能升级到 5.1 - 不支持 Windows 8 及以下的 ARM 设备 --- # ✅ 批处理脚本中自动检测并提示升级 你可以在你的 `.bat` 脚本开头加入这段代码,提醒用户升级: ```bat :: 检查 PowerShell 是否支持 Invoke-WebRequest powershell -Command "if (Get-Command Invoke-WebRequest -ErrorAction SilentlyContinue) { exit 0 } else { exit 1 }" if %errorlevel% neq 0 ( echo. echo ❌ 当前 PowerShell 不支持必要命令(如 Invoke-WebRequest)。 echo. echo 📢 请升级 Windows Management Framework 到 4.0 或以上: echo https://www.microsoft.com/en-us/download/details.aspx?id=40855 echo. echo 💡 适用于 Windows 7 SP1 用户。 pause exit /b 1 ) ``` --- # ✅ 常见问题与解决 | 问题 | 原因 | 解决方法 | |------|------|----------| | 安装失败,错误 0x80070005 | 权限不足 | 以管理员身份运行 | | 安装失败,错误 0x800F0922 | 组策略禁止更新 | 检查企业策略或服务状态 | | 提示缺少 .NET 4.0 | 未安装基础框架 | 先安装 .NET Framework 4.0 | | 安装后版本仍为 2.0 | 未重启 | 重启系统生效 | --- # ✅ 总结 | 操作 | 是否必要 | 建议 | |------|--------|------| | 升级 PowerShell 到 3.0+ | ✅ 是(为 Flutter 脚本服务) | 推荐安装 WMF 4.0 | | 安装 .NET Framework 4.0 | ✅ 是(前置依赖) | 必须先装 | | 最终目标版本 | PowerShell 4.0 或 5.1 | 功能完整 | ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值