原有的原生flutter项目如何迁移到鸿蒙?

原有的原生flutter项目如何迁移到鸿蒙?

1、创建个新项目,把旧项目的lib与assets目录复制覆盖到新项目
2、修改pubspec.yaml依赖,改为支持 鸿蒙版本
3、如果编译没问题理论上就能跑在鸿蒙设备上了
4、Android或iOS平台上的一些特殊修改复制到新项目
以上操作相对简单一些。如果在老项目里面改也是可以的,直接在项目根目录直行

flutter create --platforms ohos .

然后修改pubspec.yaml依赖

flutter pub get
flutter build hap

flutter build app 输出的app文件路径不对

flutter build app 输出的app文件所在位置 ohos/build/outputs/default/ohos-default-signed.app
flutter build app --flavor myflavor 输出的app文件所在位置为 ohos/build/outputs/myflavor/ohos-myflavor-signed.app

Windows模拟器上运行flutter应用

  1. Windows环境上的鸿蒙模拟器上运行flutter应用
  2. 确保在切换编译架构类型后,libapp.so能被删除

使用命令:

flutter run -d 127.0.0.1:5555 --debug
flutter run -d 127.0.0.1:5555 --profile
flutter run -d 127.0.0.1:5555 --release
flutter build hap --target-platform ohos-x64 --debug
flutter build hap --target-platform ohos-x64 --profile
flutter build hap --target-platform ohos-x64 --release

注意事项:

更新后,在Windows环境的鸿蒙模拟器上运行flutter应用,如果遇到闪退情况,请在执行以下操作后再尝试重新运行:

  1. 删除 flutter_flutter/bin/cache 目录
  2. 运行 flutter clean 命令

闪退日志摘要:

Reason:Signal:SIGSEGV(SEGV_MAPERR)@0xffffffffc5ea3540 
Fault thread info:
Tid:31390, Name:1.ui
#00 pc ffffffffc5ea3540 Not mapped
#01 pc 0000000000500817 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#02 pc 00000000005007ba /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#03 pc 000000000061d23e /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#04 pc 000000000061d1e9 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#05 pc 000000000061d4d9 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#06 pc 00000000006cedbe /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#07 pc 00000000006d42ed /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#08 pc 00000000006d326d /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#09 pc 00000000006d31a5 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#10 pc 00000000006d3119 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#11 pc 00000000006d29b1 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#12 pc 00000000006d280d /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#13 pc 00000000006d0f66 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#14 pc 00000000006d0f1c /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#15 pc 00000000006d0daa /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#16 pc 00000000006d8019 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#17 pc 00000000006d7f5c /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#18 pc 00000000004c565f /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#19 pc 00000000006d216e /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#20 pc 00000000008c20ae /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#21 pc 00000000008c3b53 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#22 pc 000000000071042f /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#23 pc 00000000008c3b53 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#24 pc 0000000000583d64 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#25 pc 00000000008c3883 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#26 pc 000000000071dd2f /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#27 pc 00000000004baa41 /data/storage/el1/bundle/libs/x86_64/libapp.so(ae7a4ca58ac49af2c83f9408422ec99f)
#28 pc 0000000000e3ba25 /data/storage/el1/bundle/libs/x86_64/libflutter.so(7ab6bc0ebf84f0628f42fc904045d42beb3839a0)
Registers:
  rax:ffffffffc5ea3540 rdx:0000000000000001 rcx:ffffffffc5ea3540 rbx:00007f67c38b9fc8
  rsi:00007f67bfc08481 rdi:0000000000000001 rbp:00007f67c38b9fb8 rsp:00007f67c38b9fa8
  r8:0000000000047208 r9:00007f67bfc08081 r10:0000000000000001 r11:0000000000000000
  r12:00007f67bfc08081 r13:00007f67c1100754 r14:00007f67cde0e0b0 r15:00007f67bd2ebc11 rip:ffffffffc5ea3540

flutter输入框的剪切板问题

可以按照三方框架无法使用剪切板控件发邮件来开通ACL白名单
https://developer.huawei.com/consumer/cn/doc/app/agc-help-add...

你可能感兴趣的:(harmonyos)