编译OpenHarmony-4.0-Release RK3566 报错

发布于:2025-07-11 ⋅ 阅读:(20) ⋅ 点赞:(0)

编译OpenHarmony-4.0-Release RK3566 报错


subsystem name config incorrect in ‘/home/openharmony/OpenHarmony/vendor/kaihong/khdvk_356b/bundle.json’, build file subsystem name is kaihong_products,configured subsy

1. 报错问题

在这里插入图片描述

2.问题解决

  • ​子系统名称拼写错误​
    在 bundle.json 或 subsystem_config.json 中配置的 subsystem 名称与实际定义的名称不一致。
    例如:“subsystem”: “ace” 写成了 “subsystem”: “aec”。
  • ​子系统未在 subsystem_config.json 中注册​
    OpenHarmony 要求所有子系统必须在 build/subsystem_config.json 中明确定义,否则编译时会报错。
  • bundle.json 文件格式错误​
    JSON 格式错误(如缺少逗号、引号不匹配)。
    字段层级错误(如 subsystem 字段未放在正确位置)。
  • 子系统依赖未正确配置​
    如果当前组件依赖其他子系统,但未在 bundle.json 的 deps 中声明。

3.解决方案

  1. ​检查子系统名称拼写​
    打开你的组件的 bundle.json 文件,确认 subsystem 字段的值是否与 subsystem_config.json 中的定义一致。
    例如:
    jsonjson复制json复制// bundle.json
    {
    “name”: “your_component”,
    “subsystem”: “ace”, // 必须与 subsystem_config.json 中的名称一致
    “components”: […]
    }

  2. ​验证 subsystem_config.json 注册​
    检查 build/subsystem_config.json 文件,确认你的子系统是否已注册。
    例如:
    jsonjson复制json复制// build/subsystem_config.json
    {
    “ace”: {
    “path”: “foundation/ace”,
    “name”: “ace”
    },
    “your_subsystem”: { // 确保你的子系统在这里有定义
    “path”: “your/path”,
    “name”: “your_subsystem”
    }
    }

  3. ​检查 bundle.json 文件格式​

使用 JSON 校验工具(如 JSONLint)验证 bundle.json 的语法是否正确。
确保字段层级正确,例如:
jsonjson复制json复制{
“name”: “your_component”,
“subsystem”: “correct_name”, // 必须在顶层
“components”: [
{
“component”: “your_component”,
“features”: []
}
]
}

  1. ​检查子系统依赖​
    如果组件依赖其他子系统,需在 bundle.json 中声明 deps:
    jsonjson复制json复制{
    “deps”: {
    “subsystem”: “distributed_schedule”, // 依赖的子系统名
    “components”: [“ability_runtime”]
    }
    }

  2. ​清理并重新编译​
    如果问题仍未解决,尝试清理编译缓存后重新编译:
    bashbash复制bash复制rm -rf out/ # 清理输出目录
    ./build.sh --product-name your_product # 重新编译

4.​调试技巧​

​ 查看详细日志​
在编译命令后添加 --verbose 参数,获取更详细的错误信息:
bashbash复制bash复制./build.sh --product-name your_product --verbose
​对比官方示例​
参考 OpenHarmony 官方仓库中的 bundle.json 文件(如 foundation/ace),检查你的配置是否符合规范。
​检查 HARMOY_OS_BUILD_PATH 环境变量​
如果自定义了子系统路径,确保环境变量 HARMOY_OS_BUILD_PATH 指向正确的目录。
如果以上方法仍未解决问题,请提供以下信息以便进一步排查:
完整的错误日志(截图或文本)。
你的 bundle.json 和 subsystem_config.json 文件内容(脱敏后)。
你使用的 OpenHarmony 版本(如 3.2 Release 或 4.0 Beta)。


网站公告

今日签到

点亮在社区的每一天
去签到