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

Ubuntu22.04.3编译Android12遇Dex2oat boot镜像编译失败求助

解决Ubuntu 22.04.3编译Android 12时Dex2oat启动镜像编译失败问题

问题背景

此前在Ubuntu 22.04.2上可正常编译Android 12,更换为搭载新内核的全新Ubuntu 22.04.3后,编译时触发报错:

ERROR: Dex2oat failed to compile a boot image.It is likely that the boot classpath is inconsistent.Rebuild with ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier" to see verification errors

已尝试参考相关问题帖的方案但无效,目前试过的操作包括:

  • 使用附加参数构建:ALLOW_MISSING_DEPENDENCIES=true WITH_DEXPREOPT=false ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier" m -j4
  • 删除art/build/Android.bp中的-msse4.2和-mpopcnt编译参数

可行排查与解决方向

  1. 内核版本降级适配
    Ubuntu 22.04.3的新内核可能引入了与Android 12编译链不兼容的特性,可尝试降级内核至Ubuntu 22.04.2使用的对应版本(如5.15.0系列的稳定版本)后重新编译。

  2. 彻底清理编译环境后重建
    执行以下命令清除旧编译缓存与环境残留:

make clean
rm -rf out/
source build/envsetup.sh
lunch [你的目标设备代号]

之后使用简化参数重新编译,聚焦获取验证日志:

WITH_DEXPREOPT=false ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier" m -j$(nproc)
  1. 回退编译依赖版本
    Ubuntu 22.04.3可能默认更新了gcc、binutils等编译依赖,而Android 12对依赖版本有严格要求,可对照Android官方文档,手动安装指定版本的依赖包(如回退gcc至9.x系列)。

  2. 校验启动类路径一致性
    添加参数强制校验bootclasspath,定位具体不一致的组件:

VERIFY_BOOTCLASSPATH=true m -j$(nproc)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:54:59