HarmonyOS鸿蒙Next中Flutter适配最新远端同步下来的产物 platform.dart 中无 Platform.isOhos 实现

HarmonyOS鸿蒙Next中Flutter适配最新远端同步下来的产物 platform.dart 中无 Platform.isOhos 实现 之前 flutter 引擎产物是单独下载为本地,按文档配置执行 flutter 命令参数时带上 --local-engine=$本地引擎产物目录,最新 flutter 文档说可以不用本地,会自动下载远端产物,但是编译运行时报找不到 Platform.isOhos 实现。对比了下最新远端下载后的产物内:

flutter_flutter/bin/cache/pkg/sky_engine/lib/io/platform.dart

和之前手工下载引起产物目前文件对比下

flutter_engine/src/out/ohos_release_arm64/gen/dart-pkg/sky_engine/lib/io/platform.dart

发现远端下载的这个文件缺失 Platform.isOhos 的定义

  1. flutter build hap --release
  2. flutter build hap --release --local-engine=$本地引擎产物目录

步骤 1 执行会报错:

lib/pages/login/login.dart:868:34: Error: Member not found: 'isOhos'.
visible: !Platform.isOhos,
^^^^^^

更多关于HarmonyOS鸿蒙Next中Flutter适配最新远端同步下来的产物 platform.dart 中无 Platform.isOhos 实现的实战教程也可以访问 https://www.itying.com/category-92-b0.html

2 回复

这里的产物还是使用的原版的
可以先使用这种方式判断:
https://gitee.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/08_FAQ/ohos_code.md

更多关于HarmonyOS鸿蒙Next中Flutter适配最新远端同步下来的产物 platform.dart 中无 Platform.isOhos 实现的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在HarmonyOS鸿蒙Next中,Flutter适配时如果发现platform.dart中缺少Platform.isOhos实现,可以通过自定义平台检测逻辑来解决。首先,检查Flutter SDK版本是否支持鸿蒙系统。若不支持,可考虑在platform.dart中扩展Platform类,添加isOhos属性。通过判断defaultTargetPlatform或使用dart:io中的Platform类,结合鸿蒙系统特有的标识(如ohosharmony),实现自定义的平台检测。最后,确保代码在鸿蒙系统上运行时能正确识别并返回true

回到顶部