Ubuntu 22.04编译Chromium 102.0.5005.59分支遭遇未解决依赖问题求助
看起来你碰到的是旧分支(102)特有的依赖同步或配置问题——毕竟103分支能正常编译,说明你的基础环境是没问题的。下面是几个针对性的修复步骤,按顺序尝试:
1. 强制重新同步所有依赖
gclient runhooks有时候会因为缓存或网络问题漏拉取部分第三方依赖(比如报错里的androidx测试库、webrtc组件),试试用强制同步命令彻底更新:
gclient sync -D
-D参数会删除本地未跟踪的文件,强制和远程分支的依赖版本完全对齐,这是解决这类依赖问题最常用的第一步。
2. 重新适配安卓依赖安装
Ubuntu 22.04的系统包版本可能和Chromium 102分支要求的安卓依赖版本存在冲突,重新运行安装脚本时加上--no-install-recommends避免冗余包干扰:
./build/install-build-deps-android.sh --no-chromeos-fonts --no-install-recommends
执行完后再重新跑一遍gclient runhooks确保依赖生效。
3. 调整GN编译参数绕过测试模块依赖
报错里提到的androidx_test_espresso是测试相关的模块,对于非测试构建来说可以直接禁用,在你的GN参数里添加以下内容:
enable_android_test_support = false exclude_unwind_tables = true
添加后重新生成构建文件:
gn gen out/Default --check
--check参数会帮你验证参数是否合法,避免语法问题。
4. 清理旧构建目录避免缓存冲突
如果之前的构建目录有残留的缓存文件,可能导致依赖解析混乱,先删除再重新生成:
rm -rf out/Default gn args out/Default
然后重新填入你的编译参数并保存。
5. 匹配depot_tools版本到对应分支
不同Chromium分支需要对应版本的depot_tools工具链,如果你用的是最新版depot_tools,可能和102分支不兼容。进入depot_tools目录切换到对应标签:
cd depot_tools git checkout tags/102.0.5005.59 cd ..
之后再重新执行gclient sync和后续构建步骤。
为什么103分支正常?
Chromium的103分支大概率已经修复了这些依赖解析的bug,或者调整了第三方依赖的引入逻辑,而102作为更早的稳定分支,没有包含这些修复,所以会出现特定的依赖问题。
内容的提问来源于stack exchange,提问作者Daniel Walker

