- 创建鸿蒙原生工程MyApplication。
- 创建flutter module,生成har文件,并且将flutter module中.ohos文件entryability/EntryAbility.ets、pages/Index.ets分别替换MyApplication中的。
# 1. 创建 flutter子模块工程
flutter create -t module my_flutter_module
# 2. 编译生成 flutter_module.har
cd my_flutter_module
flutter build har --debug
cd -
# 3. 复制 EntryAbility.ets 和 Index.ets 到 MyApplication 中
cp my_flutter_module/.ohos/entry/src/main/ets/entryability/EntryAbility.ets MyApplication/entry/src/main/ets/entryability/EntryAbility.ets
cp my_flutter_module/.ohos/entry/src/main/ets/pages/Index.ets MyApplication/entry/src/main/ets/pages/Index.ets
- 将上一步生成的har文件拷贝到原生工程中MyApplication/har/
cp -r my_flutter_module/.ohos/har/* MyApplication/har/
- 修改原生工程MyApplication/oh-package.json5,
{
"dependencies": {
"@ohos/flutter_module": "./har/flutter_module.har",
"@ohos/flutter_ohos": "file:./har/flutter.har"
},
"overrides": {
"@ohos/flutter_ohos": "file:./har/flutter.har"
}
}
- 对原生工程MyApplication进行签名
- 运行 MyApplication
注意:由于没有真机,在模拟器运行会报如下错误。
Device info:emulator
Build info:emulator 5.0.0.65(SP73DEVC00E65R4P11log)
Fingerprint:f997680853fc6a9c5af3acd2878ed5936dc031867c36b8d1f7b42b8980fa8252
Module name:com.example.myapplication
Version:1.0.0
VersionCode:1000000
PreInstalled:No
Foreground:Yes
Timestamp:2024-10-01 20:34:34.447
Pid:17838
Uid:20020054
Process name:com.example.myapplication
Process life time:2s
Reason:Signal:SIGTRAP(TRAP_BRKPT)@0x0000007f96711dd0
Fault thread info:
Tid:17879, Name:1.raster
#00 pc 00000000023d1dd0 /data/storage/el1/bundle/libs/arm64/libflutter.so(103fd5b90568edc09203e114faebbaedd8f359d3)
官方参考文档:ohos工程 引用 har 文件