如何为安卓版Chromium添加Amplitude依赖并解决编译报错问题
编译安卓Chromium新增Amplitude依赖报错修复方案
错误根因
- 构建环境Python版本低于3.7:
capture_output是Python 3.7才新增的subprocess模块参数,低版本Python调用时会触发参数不识别错误 - 缺少构建依赖声明:仅拉取了Amplitude及其传递依赖,未在Chrome安卓模块的构建配置中声明依赖关系,会进一步导致编译时无法识别导入的类
修复步骤
- 处理Python版本兼容问题,二选一即可:
- 升级构建环境的Python版本到3.7及以上,执行
python --version确认版本符合要求 - 不升级Python的前提下,找到报错指向的调用
subprocess的脚本,将capture_output=True参数替换为stdout=subprocess.PIPE, stderr=subprocess.PIPE,即可实现同等效果兼容低版本Python
- 升级构建环境的Python版本到3.7及以上,执行
- 补充构建依赖声明
打开chrome/android/java/BUILD.gn文件,找到chrome_java构建目标的deps配置段,新增Amplitude预编译库依赖:
该依赖会自动关联Amplitude所需的okhttp、okio传递依赖,无需额外手动添加deps = [ // 原有其他依赖保持不变 "//third_party/android_deps:com_amplitude_android_sdk", ] - 清理旧构建缓存后重新编译
autoninja -C out/Default chrome_public_apk
内容的提问来源于stack exchange,提问作者hamid
相关产品推荐
相关产品推荐

