构建 AOSP 失败
Posted
技术标签:
【中文标题】构建 AOSP 失败【英文标题】:Build AOSP failed 【发布时间】:2022-01-03 11:24:43 【问题描述】:我已将所有代码同步到本地。运行这样的命令:
1.source build/envsetup.sh
2.lunch aosp_crosshatch-userdebug
============================================
PLATFORM_VERSION_CODENAME=Tiramisu
PLATFORM_VERSION=Tiramisu
TARGET_PRODUCT=aosp_crosshatch
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.10.0-1062.18.1.el7.x86_64-x86_64-Ubuntu-14.04.6-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=AOSP.MASTER
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=device/google/crosshatch hardware/google/av hardware/google/camera hardware/google/interfaces hardware/google/pixel hardware/qcom/sdm845 vendor/google/camera vendor/qcom/sdm845 vendor/google/interfaces vendor/google_devices/common/proprietary/confirmatioui_hal vendor/google_nos/host/android vendor/google_nos/test/system-test-harness vendor/google_devices/crosshatch/proprietary/hardwareinfo
在lunch命令之前,我对文件build/soong/ui/build/sandbox_linux.go做了一个改动:在文件的nsjail命令中添加参数“--disable_clone_newuser”。如果没有这个参数,会出现“Operation not allowed”的错误,我认为根本原因可能是我的Linux内核是3.1。
3.m
Error:
In file included from build/make/core/config.mk:1218:
In file included from build/make/core/soong_config.mk:12:
build/make/core/dex_preopt_config.mk:157: error: fopen failed.
06:29:13 dumpvars failed with: exit status 1
failed to build some targets (1 seconds)
我尝试了命令“lunch aosp_arm-eng”和“m”,但得到了同样的错误。
【问题讨论】:
【参考方案1】:如果您进行了任何更改,请在问题中也显示这些更改。
如果你没有改变任何东西, 请确保您已添加正确的driver binaries(供应商代码)并在构建之前尝试清理。
清理命令:make clean
【讨论】:
我确实在 aosp 文件夹中下载了交叉影线驱动程序二进制文件,解压缩它们并运行 2 sh 文件,然后再运行命令“m”。我还在“lunch”命令之前做了一个更改:在 build/soong/ui/build/sandbox_linux.go 文件中添加一个“--disable_clone_newuser”参数,当在其中调用 nsjail 命令时。添加“--disable_clone_newuser”试图在运行“午餐”命令时修复“不允许操作”错误。我不知道更改是否导致“fopen failed”错误。 @rockrock 在此过程中您是否随时使用sudo
?即在创建下载目录或初始化存储库时?您的 AOSP 根文件夹的目录权限是什么?你可能想看看这个 github 线程:--disable_clone_newuser ignored
我使用 Ubuntu 映像在 docker 中构建 AOSP,并以 root 用户运行 docker 映像。所以它与随时使用 sudo 相同。 AOSP文件夹的权限是“drwxr-xr-x”。
把权限改成777还能用吗? @rockrock以上是关于构建 AOSP 失败的主要内容,如果未能解决你的问题,请参考以下文章
构建 AOSP 10 时出现 Java OutOfMemoryError