AOSP Android 12 Beta版本编译失败 stub库重复定义问题求助
AOSP Android 12 Beta分支编译重复stub定义问题解决方案
错误根因
Android 12 Beta阶段的官方AOSP标签存在配置冲突,核心平台API的stub模块同时在build/soong/java/core-libraries/Android.bp和libcore/mmodules/core_platform_api/Android.bp两个路径下定义,因此触发重复定义报错。不要随意将build/soong等核心仓库切换为master分支,跨版本依赖不兼容会引发更多不可预期的编译错误。
修复步骤
1. 移除冲突的重复模块
优先通过本地manifest配置排除冲突模块,不会污染上游代码,后续同步代码也不会被覆盖:
- 在源码根目录的
.repo路径下新建local_manifests文件夹(如果不存在的话) - 在该文件夹内新建
remove_duplicate_stub.xml,写入以下内容:
<?xml version="1.0" encoding="UTF-8"?> <manifest> <remove-project name="platform/libcore/mmodules/core_platform_api" /> </manifest>
- 重新执行同步命令,自动删除冲突模块:
repo sync
2. 全量清理旧构建缓存
残留的旧编译产物会携带错误配置,必须清理后再重新编译:
rm -rf out/ make clobber
3. 执行正常编译流程
和你原有编译逻辑一致即可,建议指定编译线程数提升编译速度:
source build/envsetup.sh lunch aosp_blueline-userdebug m -j$(nproc)
注意事项
- 编译环境必须符合Android 12的官方要求:JDK版本必须为11,操作系统推荐使用Ubuntu 18.04/20.04,提前安装所有编译依赖包
- 其他Android 12 Beta版本如果出现同类stub重复定义错误,都可以用该方案通用处理,不需要修改其他仓库的分支配置
内容的提问来源于stack exchange,提问作者user4618429
相关产品推荐
相关产品推荐

