HarmonyOS鸿蒙Next中使用Flutter创建项目启动APP之后闪退

HarmonyOS鸿蒙Next中使用Flutter创建项目启动APP之后闪退 使用Flutter创建鸿蒙项目启动APP之后闪退


更多关于HarmonyOS鸿蒙Next中使用Flutter创建项目启动APP之后闪退的实战教程也可以访问 https://www.itying.com/category-92-b0.html

3 回复

模拟器兼容性问题 使用真机问题解决

Flutter来发鸿蒙以下问题:

(1): Flutter开发鸿蒙目前可以参考Gitcode上的ohos分支, 真机系统版本 需升级到鸿蒙5.0系统及以上,5.0以下系统不支持参考链接:

https://gitcode.com/openharmony-tpc/flutter_flutter/wiki/Flutter-OH%E7%89%88%E6%9C%AC%E6%BC%94%E8%BF%9B%E8%A7%84%E5%88%92%E5%92%8C%E5%88%86%E6%94%AF%E7%AD%96%E7%95%A5.md

(2): Flutter使用ohos分支适配开发的APP目前只能上架到harmony NEXT系统上

(3): Flutter开发鸿蒙的说明现在集中到Gitcode社区内详情参考: https://gitcode.com/openharmony-tpc/flutter_samples/tree/master/ohos/docs#%E6%96%87%E6%A1%A3%E5%85%A5%E5%8F%A3

cke_268.png

更多关于HarmonyOS鸿蒙Next中使用Flutter创建项目启动APP之后闪退的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在HarmonyOS Next中使用Flutter创建的项目启动后闪退,主要原因是当前Flutter官方尚未正式适配HarmonyOS Next。Flutter引擎与HarmonyOS Next的底层系统接口存在兼容性问题,导致应用在初始化或渲染时崩溃。目前没有官方的Flutter for HarmonyOS Next SDK。

根据您提供的日志截图,问题核心在于 Flutter引擎的共享库加载失败

具体错误信息为:

java.lang.UnsatisfiedLinkError: dlopen failed: library "libflutter.so" not found

原因分析: 在HarmonyOS Next上,Flutter引擎的动态库(如libflutter.so)未能正确打包到HAP中或加载路径存在问题。这通常是由于Flutter的HarmonyOS适配尚不完善,或项目配置有误导致的。

解决步骤:

  1. 检查Flutter与HarmonyOS的兼容性

    • 确认您使用的Flutter版本是否官方支持HarmonyOS Next。目前Flutter对HarmonyOS的原生支持仍在演进中,建议使用Flutter社区为HarmonyOS维护的分支或适配版本。
    • 运行 flutter doctor -v 检查Flutter环境,确保HarmonyOS工具链已被正确识别。
  2. 验证项目配置

    • 检查项目 build.gradleoh-package.json5,确保已正确添加Flutter模块依赖,并且NDK(或OHOS Native)的编译配置包含Flutter的库文件。
    • 在HarmonyOS项目中,需要将Flutter编译生成的 libflutter.so 等库文件明确放置在 src/main/resources/rawfile/lib/arm64-v8a(或对应架构)目录下,并在 module.json5 中声明。
  3. 清理并重新构建

    • 执行 flutter clean 清理Flutter构建缓存。
    • 重新构建Flutter模块:flutter build ohos(如果适配分支支持该命令)。
    • 在HarmonyOS工程中,清理并重新构建HAP。
  4. 检查设备架构

    • 确认测试设备的CPU架构(如arm64-v8a),并与Flutter构建的库架构匹配。HarmonyOS Next目前主要支持64位。

如果上述步骤无法解决,问题可能源于Flutter引擎本身与HarmonyOS Next系统的底层兼容性。由于闪退发生在原生层(Java调用JNI加载so库),需要等待Flutter官方或社区对HarmonyOS Next的进一步适配。您可以关注Flutter官方仓库或HarmonyOS开发者社区的更新。

回到顶部