我正在尝试构建Android 12。我使用的是Ubuntu 22.04.2,它工作得很好。现在我安装了一个新的Ubuntu 22.04.3,它使用了一个新的内核,我开始得到这个错误:
错误:Dex 2 oat无法编译 Boot 映像。可能是 Boot 类路径不一致。请使用ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier”重建以查看验证错误。
我已经看到了这个类似的问题Android dex2oat build:ERROR: Dex2oat failed to compile a boot image-没有什么工作,我从这个线程
1.已尝试使用其他标志运行生成:ALLOW_MISSING_DEPENDENCIES=true WITH_DEXPREOPT=false ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier" m -j4
1.已尝试删除art/build/Android.bp(https://i.stack.imgur.com/39O63.png)中的标志(“-msse4.2”和“-mpopcnt”)
2条答案
按热度按时间mgdq6dx11#
因此,经过一些挖掘AOSP代码,我想出了这个变通办法。请注意,我不认为这是一个解决方案-只是一个变通办法。基本上,它指出在构建脚本中WITH_DEXPREOPT被覆盖。在我的AOSP版本中,它位于build/core/board_config. xml中。
解决方法:
1.在
build/core/board_config.mk
中,将WITH_DEXPREOPT
设置为false build/core/board_config.mk1.通过删除
$(call pretty-error, DEXPREOPT must be enabled for user and userdebug builds)
build/core/dex_preopt_config.mk来消除build/core/dex_preopt_config.mk
中的错误bfrts1fy2#
看起来,在Ubuntu 22.04 LTS中,内核版本6.x.x会产生一些问题,或者它与构建系统不兼容。当我将构建机器的内核版本降级到:5.15.0-84-通用)。看看这里:https://stackoverflow.com/a/77203755/6037446