切换至Chromium 80版本构建Android WebView时Ninja缺失报错求助
问题原因及解决方法
核心原因
Chrome 80.0.3987.99这类旧版本的构建依赖管理逻辑和main分支存在差异:
- main分支会自动将Ninja作为内置依赖放在
src/third_party/ninja目录下; - 80.x版本则依赖depot_tools自带的Ninja,且需要通过
gclient runhooks手动触发安装对应版本的构建工具,仅执行gclient sync不会自动拉取Ninja到本地。
解决步骤
第一步:补全构建依赖
切换到80.0.3987.99分支并执行gclient sync后,立刻运行:gclient runhooks该命令会触发安装当前分支所需的所有构建工具(包括对应版本的Ninja),直接解决
Could not find Ninja的报错。第二步:验证Ninja状态
运行以下命令确认Ninja已被正确安装:which ninja若输出指向depot_tools目录下的ninja二进制文件,说明依赖补全成功。
第三步:清理旧构建目录(可选但推荐)
由于不同分支的构建配置存在差异,切换分支后建议清理原有out目录,重新生成配置:rm -rf out/Default gn args out/Default之后再执行构建命令:
autoninja -C out/Default system_webview_apk备选方案:手动指定Ninja路径
如果gclient runhooks仍未解决问题,可以手动下载80.x版本适配的Ninja(推荐1.9.0版本),然后设置环境变量指定路径:export NINJA_PATH=/path/to/your/ninja/binary再重新执行构建命令即可。
内容的提问来源于stack exchange,提问作者Herman
相关产品推荐
相关产品推荐

