【HarmonyOS NEXT】踩坑记录:00306046 Specification Limit Violation

一、背景

我们现在开发的项目采用的是壳工程+模块的形式,我需要单独运行登录模块来进行更改bug和新增需求,但遇到以下报错,记录下踩坑问题

二、具体问题

运行报错:00306046 Specification Limit Violation

三、确定问题

原因:00306046 Specification Limit Violation(规范限制违规),明确提示当使用了字节码 HAR 包(Bytecode HARs)时,必须启用useNormalizedOHMUrl配置,且当前项目未开启该配置

项目依赖的字节码格式的HAR包对项目构建配置有特殊要求

项目级build-profile.json5文件中,useNormalizedOHMUrl未设置为true,违反了字节码 HAR 包的使用规范,导致构建失败。

四、什么是useNormalizedOHMUrl

useNormalizedOHMUrl是鸿蒙项目构建配置中的核心参数,作用是:

1、使用标准化的OHMUrl(OHMUrl的定义参考以下说明)格式,标准化的OHMUrl统一了原有OHMUrl的格式。使用集成态HSP和字节码HAR需使用标准化的OHMUrl格式。

2、当项目依赖字节码格式 HAR 包 (非源码 HAR 包)时,该配置必须设为true,否则构建工具无法正确识别和处理这些依赖包,从而抛出规范违规错误。

说明:

1、当useNormalizedOHMUrl设置为true时,不允许通过相对路径跨模块或绝对路径导入文件,oh-package.json5中依赖的包使用的别名需要和依赖包的oh-package.json5的name保持一致

所以,我在登录模块将useNormalizedOHMUrl设置为true单独运行起来,在壳工程内就不能通过相对路径跨模块或绝对路径导入文件来运行了

五、如何更改bug

build-profile.json5 中将 useNormalizedOHMUrl字段设为true

若没有该字段,新增即可

备注:

如果useNormalizedOHMUrl字段改为true后还是报错,需要看下是不是位置写错了

该字段是在工程级build-profile.json5内添加,而不是在login模块内添加哦

相关推荐
前端技术19 分钟前
HarmonyOS开发:鸿蒙应用开发发展史
华为·harmonyos
忡黑梨26 分钟前
eNSP_路由策略
运维·服务器·网络·华为·智能路由器·负载均衡
Hello__77771 小时前
开源鸿蒙 Flutter 实战|自定义头像组件全流程实现
flutter·华为·harmonyos
模拟IC攻城狮2 小时前
华为2026 年校园招聘——硬件技术工程师-电源方向-机试题(12套)(每套四十题)
嵌入式硬件·华为·硬件架构·芯片
花先锋队长2 小时前
从“耐刮”到“通透”:华为抗反光耐刮昆仑玻璃,如何重新定义屏幕体验?
华为
IntMainJhy3 小时前
【flutter for open harmony】第三方库Flutter成就解锁彩纸动画的鸿蒙化适配与实战指南
harmonyos
sdszoe49223 小时前
华为设备安全管理之路由器+ACL
网络·安全·华为·路由器+acl
Lanren的编程日记3 小时前
任务77:Flutter 鸿蒙应用视频录制功能实战:视频录制+录制控制+视频编辑,打造完整视频处理能力
flutter·音视频·harmonyos
Hello__77773 小时前
开源鸿蒙 Flutter 实战|进度条组件全流程实现
flutter·开源·harmonyos
音视频牛哥3 小时前
SmartMediaKit 鸿蒙NEXT 产品生态之RTMP推流、轻量级RTSP服务与推送端录像能力详解
音视频·harmonyos·鸿蒙rtmp播放器·鸿蒙rtsp播放器·鸿蒙rtmp推流·鸿蒙next下rtmp同屏·鸿蒙rtsp服务器