You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向views_examples_resources.grd添加图片结构后编译报错的修复方法

修复Chromium资源文件编译报错方案

1. 为新增图片分配合法资源ID

在ui/views/examples/views_examples/views_examples_resources.grd的<structures>节点中,必须给图片资源指定符合Chromium规范的资源ID,示例代码如下:

<structures>
  <structure type="chrome/jpg" name="IDR_VIEWS_EXAMPLES_DOG_JPG" file="images/dog.jpg" />
</structures>
  • name字段为资源ID,需以IDR_开头,保证全局唯一不重复
  • type根据图片格式填写,jpg格式可使用chrome/jpg(Chromium对常见格式兼容)

2. 同步更新资源ID映射

Chromium依赖资源ID与文件的映射关系,需完成以下操作之一:

自动生成ID头文件

运行grit工具重新生成资源头文件:

python tools/grit/grit.py build -i ui/views/examples/views_examples/views_examples_resources.grd -o out/Default/gen

手动维护ID头文件

如果项目使用手动维护的资源头文件(如views_examples_resources.h),添加对应的宏定义:

#define IDR_VIEWS_EXAMPLES_DOG_JPG 12345  // 替换为未被占用的ID值

注意:宏定义的ID值必须与grd文件中name字段完全一致。

3. 校验grd文件结构完整性

确保<structures>节点是<grit>根节点的直接子节点,或位于正确的<release>/<debug>分支下,完整结构示例:

<grit latest_public_release="0" current_release="1" output_all_resource_defines="false">
  <outputs>
    <output filename="views_examples_resources.h" type="rc_header" />
    <output filename="views_examples_resources.pak" type="pak" />
  </outputs>
  <structures>
    <structure type="chrome/jpg" name="IDR_VIEWS_EXAMPLES_DOG_JPG" file="images/dog.jpg" />
  </structures>
</grit>

4. 重新执行构建

清理缓存并重新运行ninja构建:

ninja -C out/Default ui/views/examples/views_examples

核心原因

Chromium的grit资源系统要求所有资源节点(包括<structures>)必须绑定有效的资源ID,构建工具会校验ID的存在性,未定义ID时会触发该报错。

内容的提问来源于stack exchange,提问作者BoGe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:34:55