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

编译Android 11出现Illegal instruction (core dumped)错误如何排查

排查与解决思路

核心原因定位

报错日志中明确显示profman工具执行时触发Illegal instruction (core dumped),这是你当前使用的PowerEdge 2950服务器硬件和Android 11编译工具链不兼容导致的:

  • PowerEdge 2950搭载的老款Xeon CPU属于酷睿2微架构,最高仅支持SSE3指令集,不包含SSE4.2及更高版本的指令集
  • Android 11的预构建主机工具链默认是针对支持SSE4.2的CPU编译的,工具执行时调用到新指令就会触发非法指令崩溃
  • 可通过以下命令验证:
# 查看CPU支持的指令集,无sse4_2输出即可确认兼容问题
grep sse4_2 /proc/cpuinfo
# 手动执行报错命令,确认崩溃复现
ANDROID_LOG_TAGS="*:e" out/soong/host/linux-x86/bin/profman --create-profile-from=external/apache-http/art-profile --apk=out/soong/.intermediates/external/apache-http/org.apache.http.legacy/android_common/aligned/org.apache.http.legacy.jar --dex-location=/system/framework/org.apache.http.legacy.jar --reference-profile-file=out/soong/.intermediates/external/apache-http/org.apache.http.legacy/android_common/dexpreopt/profile.prof

可落地的解决方案

临时规避(优先测试验证)

关闭dexpreopt流程跳过profman调用,确认构建流程本身无其他问题:

  • 全局关闭dexpreopt:编译命令前添加WITH_DEXPREOPT=false参数
  • 单独关闭对应包的dexpreopt:修改external/apache-http/Android.bp,在org.apache.http.legacy模块定义中添加如下配置:
dex_preopt: {
    enabled: false
},

长期修复

如果需要保留dexpreopt功能,二选一即可:

  • 本地编译适配你当前CPU指令集的profman二进制,替换预构建的out/soong/host/linux-x86/bin/profman文件,对应源码路径为art/profman/
  • 更换搭载支持SSE4.2及以上指令集CPU的主机进行编译,Android 10及以上版本官方编译要求主机CPU必须支持SSE4.2指令集

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:24:03