LineageOS 21.0 x86_64 eng GSI构建报错:冗余工件路径条目
LineageOS 21.0 x86_64 eng GSI构建冗余路径条目错误的根源与解决方法
错误根源
- ART编译链自动生成机制冲突:LineageOS 21基于Android 14,ART会自动为
system/framework下的jar文件生成对应odex/vdex文件,这些文件的路径已经被系统默认的工件允许列表覆盖,但lineage_gsi_x86_64.mk里手动添加了重复的路径条目,触发了PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS的严格校验。 - GSI配置未同步ART新特性:官方GSI构建模板在适配Android 14时,没有及时清理Android 13及更早版本遗留的手动路径配置,导致新旧路径规则冲突。
合理解决方法
- 精准删除冗余条目:打开
vendor/lineage/build/target/product/lineage_gsi_x86_64.mk,找到所有包含system/framework/oat/x86_64/*.odex、system/framework/oat/x86_64/*.vdex的行,直接删除这些重复配置,保留其他必要的允许路径条目。 - 同步最新源码:执行
repo sync -c -j$(nproc)拉取LineageOS最新源码,官方大概率已经修复了这个配置滞后的问题,同步后无需手动修改即可正常构建。 - 清理缓存重新构建:修改配置或同步源码后,先执行
mka clean清理旧的构建缓存,再执行mka lineage_gsi重新构建,确保错误消除且镜像功能正常。
临时解决办法的风险
- 关闭
PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS会禁用路径合规性校验,可能导致构建出的GSI包含不符合Android规范的文件,引发模拟器启动失败、应用崩溃等问题。 - 盲目排除条目可能误删必要的路径配置,导致ART无法加载关键编译文件,最终镜像无法正常运行。
内容的提问来源于stack exchange,提问作者feder
相关产品推荐
相关产品推荐

