鸿蒙Flutter实战:11-使用 Flutter SDK 3.22.0

使用 Flutter SDK 3.22.0

SDK 安装

参考[鸿蒙Flutter实战:01-搭建开发环境]文章的说明,首先安装 Flutter SDK 3.22.0。

目前鸿蒙化Flutter SDK 3.22 还未正式发布,现在可以使用 https://gitee.com/harmonycommando_flutter/flutter 进行前期测试验证。

使用 FVM 进入 目录 ~/fvm/versions/, 克隆以上仓库。

git clone https://gitee.com/openharmony-sig/flutter_flutter.git custom_3.22.0

接下来使用 fvm list 命令查看 SDK版本 列表。

┌───────────────┬─────────┬─────────────────┬──────────────┬──────────────┬────────┬───────┐
│ Version       │ Channel │ Flutter Version │ Dart Version │ Release Date │ Global │ Local │
├───────────────┼─────────┼─────────────────┼──────────────┼──────────────┼────────┼───────┤
│ custom_3.22.0 │         │ Need setup      │              │              │        │       │
├───────────────┼─────────┼─────────────────┼──────────────┼──────────────┼────────┼───────┤
│ 3.22.0        │ stable  │ 3.22.0          │ 3.4.0        │ May 13, 2024 │ ●      │       │
└───────────────┴─────────┴─────────────────┴──────────────┴──────────────┴────────┴───────┘

可以看到,SDK中出现了两个版本,其中使用命令 fvm global 3.22.0 将 官方的3.22.0 设置成了全局默认版本。鸿蒙化的 SDK 需要配置安装,我们稍后进入项目,执行安装。

项目配置

1.进入项目根目录,如果项目还未创建,则使用 flutter create 命令创建项目

flutter create my_app

2.在当前项目目录,设置使用的 Flutter SDK 版本

fvm use custom_3.22.0

此时会自动安装 sdk 版本,运行成功后如果再运行 fvm list, 可以看到 SDK 已经准备就绪。

┌───────────────┬─────────┬─────────────────┬──────────────┬──────────────┬────────┬───────┐
│ Version       │ Channel │ Flutter Version │ Dart Version │ Release Date │ Global │ Local │
├───────────────┼─────────┼─────────────────┼──────────────┼──────────────┼────────┼───────┤
│ custom_3.22.0 │         │ 3.22.0-ohos     │ 3.4.0        │              │        │       │
├───────────────┼─────────┼─────────────────┼──────────────┼──────────────┼────────┼───────┤

同时,配置命令执行完成后,将会在项目目录中创建 .fvm 目录,里面 flutter_sdk 会软连接到实际的 custom_3.22.0 SDK 目录。

查看 .vscode/settings.json 文件可以发现,自动创建了一条配置 flutter sdk 的项目:

  "dart.flutterSdkPath": ".fvm/versions/custom_3.22.0"

如果项目使用了 melos, 则需要在 melos.yaml 文件的底部,添加以下配置,使得 melos 可以使用自定义的 flutter sdk

sdkPath: .fvm/versions/custom_3.22.0

3.如果项目已经创建,还未添加鸿蒙平台支持,则使用以下命令添加鸿蒙平台支持。

flutter create --platforms ohos .

其中,.代表当前目录。

目录结构类似如下所示

├── README.md
├── analysis_options.yaml
├── assets
├── build
├── env
├── lib
│   ├── config
│   └── main.dart
├── melos_ohos_app.iml
├── ohos
│   ├── AppScope
│   ├── build-profile.json5
│   ├── entry
│   ├── har
│   ├── hvigor
│   ├── hvigorfile.ts
│   ├── local.properties
│   ├── oh-package-lock.json5
│   ├── oh-package.json5
│   └── oh_modules
├── pubspec.lock
├── pubspec.yaml
└── pubspec_overrides.yaml

创建命令执行成功后,项目中会出现 ohos目录,这里面存放的就是鸿蒙平台的相关代码。

签名

1.在运行项目前,先对项目进行签名,否则在运行过程中会出现这样的错误

请通过DevEco Studio打开ohos工程后配置调试签名(File -> Project Structure -> Signing Configs 勾选Automatically generate signature)

2.用 DevEco 打开上面的 ohos 目录,注意不是项目目录,是项目下面的 ohos 鸿蒙目录,然后根据提示依次打开 File -> Project Structure -> Signing Configs, 点击自动签名即可。

3.签名成功后,文件 ohos/build-profile.json5 会自动更新,里面的字段 signingConfigs 出现相应的签名配置信息。

运行

运行 Flutter 项目,在项目根目录使用 fvm flutter run 或者在 IDE 中点击运行按钮

参考资料

<think>好的,我现在需要帮用户解决自定义Flutter SDK缓存失败的问题,具体错误是“Failed to ensure custom Flutter SDK version 3.22.0 is cached, manual installation required”。首先,我得理解这个错误的原因。根据用户提供的引用信息,问题可能涉及SDK路径配置、版本不一致或环境设置。 首先,用户提到引用[1]中的情况,没找到Flutter SDK,需要在local.properties中配置flutter.sdk路径。这可能意味着项目中的local.properties文件没有正确指向自定义的Flutter SDK路径。因此,我需要建议用户检查该文件,确认路径是否正确。 接下来,引用[3]提到用户自己的Flutter环境在E盘,并且需要拉取最新代码和运行flutter doctor。这可能意味着如果SDK版本不匹配或者代码过旧,会导致缓存失败。因此,可能需要用户更新Flutter代码和Dart SDK使用git pull和flutter doctor命令。 另外,引用[4]指出Flutter版本显示为0.0.0-unknown,这可能是因为xcode-select未正确配置,尤其是在macOS环境下。用户需要运行xcode-select命令来修复这个问题,然后再次检查flutter doctor。 综合这些信息,可能的解决步骤包括: 1. 检查local.properties文件中的flutter.sdk路径是否正确。 2. 确保拉取最新的Flutter代码并更新Dart SDK3. 在macOS上配置xcode-select路径。 4. 手动下载指定版本的Flutter SDK并配置环境变量。 5. 清理缓存并重新构建项目。 此外,用户可能需要手动安装指定版本的Flutter SDK,如果自动缓存失败的话。需要引导用户到官网下载对应版本,设置环境变量,并验证版本是否正确。同时,检查网络问题,确保能正常访问存储库,避免因网络问题导致下载失败。 最后,生成相关问题,帮助用户深入理解可能遇到的类似问题,比如配置路径、版本管理、环境变量设置等。</think>### 解决自定义Flutter SDK缓存失败问题 #### 1. 检查SDK路径配置 - **问题原因**:项目可能未正确识别自定义Flutter SDK路径。 - **解决步骤**: 1. 打开项目根目录下的 `android/local.properties` 文件。 2. 添加或修改 `flutter.sdk` 路径,例如: ```properties flutter.sdk=E\:\\flutter ``` 3. 保存文件并重新构建项目[^1]。 #### 2. 更新Flutter代码与SDK - **问题原因**:SDK版本过旧或代码不完整。 - **解决步骤**: 1. 切换到Flutter SDK目录,拉取最新代码: ```bash git pull origin master ``` 2. 运行以下命令更新依赖: ```bash flutter doctor flutter pub get ``` 3. 若Dart SDK异常,手动下载并替换 `flutter/bin/cache/dart-sdk`[^3]。 #### 3. 修复macOS环境配置 - **问题原因**:`xcode-select` 路径未正确设置。 - **解决步骤**: 1. 执行命令重置Xcode路径: ```bash sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer ``` 2. 验证Flutter版本: ```bash flutter --version ``` 3. 若仍显示 `0.0.0-unknown`,重新安装Flutter SDK[^4]。 #### 4. 手动安装指定Flutter版本 - **问题原因**:自动缓存失败需手动干预。 - **解决步骤**: 1. 从[Flutter Releases](https://docs.flutter.dev/development/tools/sdk/releases)下载 `3.22.0` 版本。 2. 解压到本地目录(如 `E:\flutter_3.22.0`)。 3. 配置环境变量: ```bash export PATH="$PATH:/path/to/flutter_3.22.0/bin" ``` 4. 验证版本: ```bash flutter --version ``` #### 5. 清理缓存与重新构建 - **问题原因**:旧缓存文件可能导致冲突。 - **解决步骤**: 1. 清理Flutter缓存: ```bash flutter clean ``` 2. 删除 `pubspec.lock` 文件后运行: ```bash flutter pub get ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少湖说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值