HarmonyOS 鸿蒙Next中请问Library引用的文档中,这个部分是bug吗?

HarmonyOS 鸿蒙Next中请问Library引用的文档中,这个部分是bug吗? 问题描述:我在学习使用:https://developer.huawei.com/consumer/cn/doc/architecture-guides/common-v1_26-ts_23-0000002263888806 时,在进行第4步配置依赖的时候发现,如果原先的library模块下“src/main/module.json5”中name的名称是大写的,例如:

cke_2283.png

那么我在Entry的oh-package.json5中进行配置的时候,就会爆红出错:

cke_6559.png

而当我更改为小写的library时,就正常了,这和文档中的描述不一致:

cke_18124.png

请问这个是bug吗,还是我使用的不对?


更多关于HarmonyOS 鸿蒙Next中请问Library引用的文档中,这个部分是bug吗?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

尊敬的开发者,您好,

关于您的反馈的问题,

问题原因如下:

开发者你好,您的问题已受理,正在内部处理中,请耐心等待.

文档正在修改

问题解决方案:

第四步的说明中,实际’library’是library模块下“src/oh-package.json5”中name的名称。

合作愉快。

华为开发者联盟

更多关于HarmonyOS 鸿蒙Next中请问Library引用的文档中,这个部分是bug吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


开发者你好,您的问题已受理,正在内部处理中,请耐心等待.

第四步的说明中,实际’library’是library模块下“src/oh-package.json5”中name的名称。

在工程级build-profile.json5文件中,strictMode用于定义严格模式,含有useNormalizedOHMUrl、caseSensitiveCheck等配置字段。

  • useNormalizedOHMUrl:布尔值类型,选择是否使用标准化的OHMUrl格式,标准化的OHMUrl统一了原有OHMUrl的格式,使用集成态HSP和字节码HAR需使用标准化的OHMUrl格式。
  • caseSensitiveCheck:布尔值类型,选择导入文件是否严格校验大小写,支持相对路径和软链接。

不是bug,就是区分大小写。

当然也可以关闭大小写敏感问题,但是不推荐这么做。

在HarmonyOS Next中,Library引用的文档部分若出现异常,可能是文档本身存在描述错误或版本不匹配导致的显示问题。建议先核对文档版本与当前使用的SDK或API版本是否一致。若确认版本无误,可查阅官方更新日志或提交问题反馈至华为开发者社区。

根据你描述的情况,这不是文档的bug,而是HarmonyOS Next开发中的一项命名规范约束

在HarmonyOS Next的模块管理和依赖配置体系中,oh-package.json5 文件中 dependencies 字段所引用的模块名称,必须与依赖模块 src/main/module.json5"name" 字段的值保持完全一致,包括大小写

你遇到问题的核心原因如下:

  1. 依赖解析规则:构建工具(如Hvigor)在解析 oh-package.json5 中的依赖时,会严格按照你填写的字符串去查找对应的模块。如果你的Library模块在 module.json5 中定义的 "name""Library"(首字母大写),那么在Entry的 oh-package.json5 中就必须写 "Library"。写成 "library" 会被视为一个不同的、不存在的模块名,因此报错。

  2. 文档示例的侧重点:文档中的示例 "library" 是一个示意,旨在说明配置格式和位置。它默认开发者会使用全小写、符合常规包命名习惯的名称(如 "mylibrary")。文档可能没有用大写字母示例来强调大小写敏感性,但这不代表支持大小写不敏感的引用。

结论与建议:

  • 保持一致性:确保在 oh-package.json5dependencies 中填写的模块名,与目标Library模块 module.json5 中的 "name" 一字不差
  • 命名最佳实践:为了避免此类混淆,并遵循普遍的开发惯例,强烈建议将模块名统一采用全小写字母(例如使用 "mylibrary" 而非 "MyLibrary")。这能提升代码的可读性并减少因大小写导致的问题。

所以,你通过将名称改为小写来匹配的做法是正确的,这解决了大小写不一致导致的依赖解析失败问题。这不是系统bug,而是需要严格遵守的配置规则。

回到顶部