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

修改AOSP根路径后如何重新编译源码并复用原有编译产物

AOSP迁移路径后复用原有编译产物方案

问题根因

安卓10+采用的Soong/Blueprint/Ninja构建体系会将源码的绝对路径硬编码到构建元数据文件中,源码路径变更后元数据与实际路径不匹配,就会触发大量编译错误。无需全量删除out目录下所有产物,仅需删除包含路径信息的元数据文件即可复用绝大多数编译结果。

具体操作步骤

  1. 首先进入新的源码根目录,初始化构建环境:
cd /home/myaccount/clone-android
source build/envsetup.sh
lunch <你原有编译使用的目标产品名,如aosp_arm64-userdebug>
  1. 删除包含绝对路径的构建元数据,执行以下命令:
# 删除out目录下的构建配置文件
rm -rf out/soong out/*.ninja out/.ninja* out/kati
# 删除源码根目录下的构建缓存
rm -rf .soong .out-dir .bootstrap build/soong/.bootstrap build/blueprint/.bootstrap
# 安卓12及以上版本额外执行以下命令
rm -rf out/metadata
  1. 执行常规编译命令即可:
m -j$(nproc)

效果说明

上述操作仅删除了路径关联的构建规则文件,所有已编译生成的二进制文件、库文件、资源产物都会被保留,构建系统会自动校验产物时间戳进行复用,整体编译耗时仅比增量编译多5%~15%,远低于全量编译耗时。

注意事项

  • 如果之前编译时自定义了OUT_DIR环境变量指定到了源码外的路径,需要同步删除自定义OUT_DIR路径下的soong、ninja相关元数据文件
  • 若操作后仍有少量路径相关错误,可额外执行rm -rf out/*/misc删除零散路径缓存即可解决

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:00:01