鸿蒙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项目中遇到了NDK未配置的异常,具体是org.gradle.api.InvalidUserDataException,需要配置NDK版本27.0.12077973。首先,我需要回忆一下在Flutter项目中如何配置NDK。记得在Android开发中,NDK的配置通常是在build.gradle文件中设置的,尤其是关于native代码的部分。 根据用户提供的引用内容,特别是引用[4]中的CMakeLists.txt示例和build.gradle配置,可能需要在build.gradle中指定NDK版本。用户提到的异常可能是因为Gradle找不到指定的NDK版本,或者配置不正确。 接下来,我需要确定在哪个build.gradle文件里进行配置。Flutter项目的Android部分通常在android/app/build.gradle里配置。用户需要在这里指定NDK的版本。查看引用[2]中的例子,用户可能需要在android块中添加NDK配置。例如,使用ndkVersion参数。 正确的步骤应该是打开android/app/build.gradle文件,在android块内添加ndkVersion的配置。例如: android { ndkVersion "27.0.12077973" ... } 但需要确认版本号的正确格式,比如是否包含完整的版本号字符串。另外,可能需要检查本地安装的NDK版本是否匹配,如果没有安装,需要通过Android Studio的SDK Manager安装对应的版本。 同时,用户可能需要设置CMake的路径,尤其是在使用外部本地构建时,如引用[4]中的CMakeLists.txt配置。可能需要确保CMake版本和NDK版本的兼容性。另外,如果用户遇到资源文件的问题,可以参考引用[3]的方法,使用Gradle的assembleDebug任务来查看详细的错误信息。 另外,用户可能需要检查项目的其他配置,例如是否在defaultConfig中正确指定了NDK的ABI过滤,或者是否有其他依赖项需要调整。例如,在build.gradle的defaultConfig里添加: ndk { abiFilters &#39;arm64-v8a&#39;, &#39;x86_64&#39; } 这可以确保只构建指定的架构,避免不必要的兼容性问题。 最后,建议用户同步Gradle项目,并重新构建,以验证配置是否正确。如果仍然有问题,可能需要检查NDK的安装路径是否正确,或者尝试清理项目并重新构建。</think>### 如何在Flutter项目中配置NDK版本27.0.12077973 #### 步骤1:修改`android/app/build.gradle`文件 1. 打开Flutter项目的Android模块配置文件: `android/app/build.gradle` 2. 在`android`代码块内添加NDK版本配置: ```groovy android { ndkVersion "27.0.12077973" // 指定NDK版本 // 其他配置... } ``` 若存在`externalNativeBuild`配置,需同步指定NDK路径(参考引用[4])[^4]。 #### 步骤2:验证本地NDK安装 1. 打开Android Studio,进入 **SDK Manager** → **SDK Tools** 2. 勾选 **NDK (Side by side)**,确保已安装版本`27.0.12077973` 3. 若未安装,勾选对应版本并点击 **Apply** 下载[^3]。 #### 步骤3:配置CMake(可选) 若项目包含C++代码,需在`build.gradle`中关联CMake: ```groovy android { externalNativeBuild { cmake { path "CMakeLists.txt" // 指向CMake配置文件 version "3.22.1" // 指定兼容的CMake版本 } } } ``` 示例CMake配置可参考引用[4]。 #### 步骤4:同步Gradle并重新构建 1. 运行命令: ```bash flutter clean && flutter pub get ``` 2. 通过Android Studio的Gradle工具执行 **assembleDebug**(参考引用[3])。 --- #### 异常处理建议 - **若仍报错**:检查NDK路径是否正确,通常在`Android/sdk/ndk/<version>` - **版本冲突**:尝试在`gradle.properties`中添加: ```properties android.useDeprecatedNdk=true ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值