利用Flutter在搭建环境时在构建app时出现长串报错与乱码的学习与解决方案
写在文章最前:感谢同营白老师技术的远程技术支持,作为一名20年纪的无为青年,这次是我第一次搭建Flutter,并且是初次尝试抛开视频使用文档任务式的学习模式,这环境搭建虽然看起来很难,但其实一点也不简单,在研究了白老师的远程技术支持的相关操作后故做此篇以记录在异常处理中迈出的又一个新的台阶。
这次的文章背景是在使用 Flutter 开发 (开源鸿蒙(OpenHarmony) 应用时,执行构建命令过程中出现多组报错,并且经逐步排查环境、依赖与分支适配问题并且充分理解修改的路径后,最终成功运行应用的一个情景
一、问题场景
基于 Flutter 框架开发开源鸿蒙 App,执行flutter build类构建命令时,终端(PowerShell)持续抛出构建错误,涉及版本兼容、依赖缺失等问题。



二、遇到的核心报错及初步分析
1. 报错 1:文件不存在与 Java 版本兼容问题
报错信息:Hivigor 构建报错 File is not exist,同时伴随com.alibaba.fastjson2.util.JDBCUtils相关 Java 警告。
初步判断:Java 版本过高,导致与构建工具链兼容性冲突。

2. 报错 2:Hivigor 版本不兼容问题
报错信息:Unsupported modelVersion of Hvigor 5.1.0
初步判断:DevEco Studio 版本过低,未适配高版本 Hivigor。
建议:选择DevEco Studio的时候尽量选择5.1.0版本以上的

3. 报错 3:Flutter-Hivigor 插件缺失
报错信息:Cannot find module 'flutter-hvigor-plugin',报错栈指向 Hivigor 配置文件。
初步判断:flutter_flutter目录下的 Hivigor 依赖文件被误删除。
可以尝试:
第一步:把flutter_flutter/bin/cache删除,然后在flutter_flutter目录下打开命令提示符,先执行git branch确认在新的分支(比如oh-3.35.7-dev),然后执行git pull.
第二步:查看flutter_flutter\packages\flutter_tools目录下hvigor内容是否完整,完整执行flutter doctor -v
第三步:项目根目录下执行flutter clean,然后执行flutter build hap --debug或者flutter build app --release或者flutter run

三、中间尝试:清理 Node 版本后的状态
本人在这一次搭建Flutter环境前,有过一次使用Claude Code进行学习的情况,问题原因可能是node版本比较高导致的。
具体清理步骤可以尝试:右键此电脑➡点击属性➡找到高级系统设置并点击➡点击环境变量➡在系统变量中找到Path➡在Path中找到带有node的变量并且删除
清理本地最新版本 Node 后,重新执行构建:
部分构建步骤(如资源拷贝、依赖解析)可完成,但仍抛出ArkTS Compiler Error。
清除前:

清除后:

四、问题根因定位
结合适配实践,核心根因是 2 点:
Java 版本过高:构建工具链不支持高版本 JDK,引发文件解析类错误;
Flutter 分支选择错误:未使用适配开源鸿蒙的 Flutter 分支,导致依赖与插件不匹配。整个原因可能是源于在下载Flutter的SDK后又将下载好的SDK删除所引起的
五、解决步骤
降级 Java 版本:将本地 JDK 版本降至构建工具支持的版本(如 JDK 11 及以下);
切换 Flutter 适配分支:拉取支持开源鸿蒙的 Flutter 分支(对应项目要求的 ohos 适配分支);
恢复 Hivigor 依赖:重新拉取 Flutter 项目依赖,恢复flutter_flutter目录下的 Hivigor 相关文件;
升级 DevEco Studio:将 DevEco Studio 升级至适配 Hivigor 5.1.0 的版本。
六、成功运行结果
完成上述调整后,重新执行构建命令,终端无报错,应用成功在开源鸿蒙模拟器中运行:

总结
Flutter 构建开源鸿蒙 App 的报错,多源于环境版本兼容(Java、DevEco Studio)与分支 / 依赖适配(Flutter 分支、Hivigor 插件)。定位根因后,通过调整环境版本、切换适配分支、恢复依赖,即可解决多数构建问题。
让我们的代码在更多鸿蒙设备上跑起来吧!
欢迎加入开源鸿蒙跨平台社区,交流更多实战心得:
https://openharmonycrossplatform.csdn.net/
更多推荐


所有评论(0)