编译Chromium时出现TypeError: the JSON object must be str, not 'bytes'报错如何修复
错误原因
该报错由系统安装的Python 3.5版本与Chromium源码构建脚本不兼容导致:Python 3.5版本的json.load()方法仅支持字符串类型输入,而process_json.py脚本读取JSON文件时未指定文本编码模式,读取到的二进制bytes内容触发类型不匹配错误。
修复方案
- 优先升级Python版本到3.6及以上,这是Chromium官方要求的最低编译依赖版本。以Debian/Ubuntu系发行版为例,执行以下命令安装新版本Python:
安装完成后将系统默认sudo apt update && sudo apt install python3.8 python3-pippython3软链接指向3.8版本即可。 - 若暂时无法升级Python版本,可直接修改
gpu/config/process_json.py脚本的文件读取逻辑:找到打开JSON文件的代码行,将open(<文件路径>)修改为open(<文件路径>, mode='r', encoding='utf-8'),指定以UTF-8文本模式读取文件,输出内容为字符串类型即可适配Python 3.5的接口要求。 - 修复完成后先清理错误生成的中间缓存:
重新执行rm -rf out/Default/gen/gpu/configautoninja -C out/Default chrome即可继续编译。
内容的提问来源于stack exchange,提问作者chil1
相关产品推荐
相关产品推荐

