HarmonyOS鸿蒙Next中已有flutter项目鸿蒙化,编译正常,启动白屏
HarmonyOS鸿蒙Next中已有flutter项目鸿蒙化,编译正常,启动白屏 请教各位大佬,如何解决





更多关于HarmonyOS鸿蒙Next中已有flutter项目鸿蒙化,编译正常,启动白屏的实战教程也可以访问 https://www.itying.com/category-92-b0.html
应该是你的一些插件没有适配鸿蒙导致的。看看你有哪些插件是在main里面初始化的。逐个排查一下
更多关于HarmonyOS鸿蒙Next中已有flutter项目鸿蒙化,编译正常,启动白屏的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
是shared_preferences的问题,谢谢
应用编译成功,安装后出现白屏的情况可能是使用的engine产物和运行模式不一致,导致运行白屏。 解决方案:运行或编译命令中,使用的engine产物和运行模式需要保持一致。 参考链接:https://gitcode.com/openharmony-tpc/flutter_samples/tree/master/ohos/docs/08_FAQ/ 或者在编译中出现错误,可参考文档修改:https://gitcode.com/openharmony-tpc/flutter_flutter/tree/3.22.0-ohos
大佬,参考链接打不卡
更新了~
大佬,我小白不是太理解参考链接里面的目的,是除了flutter环境自带的engine外,还要再构建一个engine吗?我的开发设备是win11,在flutter环境目录下发现了engine目录,在bin/cache/artifacts/engine目录下也发现了 ohos-arm64、ohos-x64、windows-x64的flutter.har,使用的鸿蒙手机模拟器是x86的。


我的情况一共有三个问题,谢谢各位回答的大佬。
- 依赖在编译过程中没有报错,在main里面逐个排除后,是shared_preferences不兼容。
- engine产物hat的问题,大佬们说他们的flutter.hat的路径我没查到,使用flutter clean 也没用,后来查看我的产物是在flutter_flutter\bin\cache\artifacts\engine下面的,我手动删除后,执行flutter run -debug才正常
- 我是win系统,使用的模拟器调试,后来看到要mac(arm)才行,用真机就可以了
尊敬的开发者,您好,关于您反馈的问题:
应用在编译成功的情况下,安装运行时出现白屏。
原因:
使用的engine产物和运行模式不一致,导致运行白屏。
解决方案:
可参考文档:应用编译成功,安装后出现白屏的情况,您可以先执行flutter clean命令,清理旧编译产物,然后通过flutter run命令执行时,明确指定运行模式,如flutter run -d device_id --debug
参考这个回复,看下是不是调试flutter.har包和发布的包混用了,删除现有的ohos/har/flutter.har,重新编译生成试试。https://developer.huawei.com/consumer/cn/forum/topic/0207211149095004035?fid=0109140870620153026
试过多次清理项目,重新构建。我没找到ohos/har目录



要先flutter run生成这个har包,再编译hap包
执行这个命令也没有生成,在flutter sdk环境目录bin/cache下倒是有har
- Flutter Engine初始化问题
import { FlutterAbility } from '@ohos/flutter_ohos';
export default class EntryAbility extends FlutterAbility {
onCreate(want, launchParam) {
// 确保调用了 super.onCreate
super.onCreate(want, launchParam);
}
onWindowStageCreate(windowStage) {
// 检查这里是否正确设置了主窗口
super.onWindowStageCreate(windowStage);
}
}
-
webview_flutter_android: ^4.11.0 webview_flutter_android 是Android 专属实现
path_provider
i mage_picker:
video_player
查看是否ohos后缀版本 -
尝试清理所有产物flutter clean → 删除 ohos/entry/build → flutter pub get 查看 ohos插件注册 ohos/entry/src/main/ets/plugin/GeneratedPluginRegistrant.ets
大佬还是不行,我把你提到的依赖全都去掉了,

请提供需要转换的HTML内容,我才能按照要求处理。您粘贴的内容是链接地址,我无法直接访问。请将HTML代码粘贴在此处。
编译正常但启动白屏,常见原因包括:Flutter引擎启动时未正确绑定鸿蒙平台通道;ohos插件中未注册FlutterActivity或FlutterFragment;Dart入口main()中未调用runApp()或Widget树构建异常;鸿蒙侧manifest文件中未配置主页面路径或缺失资源索引。检查这些配置项即可定位。
针对Flutter项目鸿蒙化后启动白屏、编译正常的情况,通常是在引擎初始化或页面渲染环节出现异常。可排查以下关键点:
- 检查
MainAbility是否正确继承自FlutterActivity,并在onCreate中调用了super.onCreate(savedInstanceState),确保 Flutter 引擎正常启动。 - 确认自定义的
FlutterActivity或容器是否通过FlutterEngine实例的getDartEntrypointExecutor()执行了 Dart 入口,且入口函数名与main.dart中的一致。 - 查看 DevEco Log 或 hilog 输出,搜索 “Flutter” 相关异常,常见错误包括 so 库缺失、插件未注册等。缺少平台插件实现可能导致引擎初始化失败白屏。
- 检查
pubspec.yaml中引入的插件是否已适配 HarmonyOS,部分第三方插件没有鸿蒙平台代码,可暂时注释掉并重新编译测试。 - 若使用了自定义
FlutterEngine,需确保在onStart前已通过FlutterEngineCache或直接传递引擎实例给 FlutterView,否则渲染内容为空。 - 尝试最小化复现:新建一个 Hello World 项目逐步添加原有配置,定位是项目代码问题还是引擎集成问题。

