一、Build uboot failed
1、gawk报错
awk: line 2: function strtonum never defined
Build uboot failed!
#解决方法,安装gawk即可
sudo apt install gawk
二、Build kernel failed
1、openssl/bio.h报错
scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: No such file or directory
21 | #include <openssl/bio.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.host:90: scripts/extract-cert] Error 1
#解决方法,openssl已经安装的话再安装libssl-dev
sudo apt install libssl-dev
2、error, forbidden warning导致kernel编译停止
#解决方法
#1、在kernel下找到gcc-wrapper.py文件
find kernel/ -name gcc-wrapper.py
kernel/scripts/gcc-wrapper.py
#2、注释掉使用interpret_warning的方法
vim kernel/scripts/gcc-wrapper.py
#interpret_warning(line.decode("utf-8"))
三、编译Android
3.1、error:redefinition
解决办法:发现这些文件被修改了,有些定义重复,有些没有定义,如果自己没有修改的话直接执行repo forall -c "git checkout .",再重新编译
3.2、 error: VNDK library list has been changed
[ 11% 4258/38545] build out/target/product/rk3399_Android10/obj/PACKAGING/vndk_intermediates/check-list-timestamp
FAILED: out/target/product/rk3399_Android10/obj/PACKAGING/vndk_intermediates/check-list-timestamp
/bin/bash -c "(( diff --old-line-format=\"Removed %L\" --new-line-format=\"Added %L\" --unchanged-line-format=\"\" build/make/target/product/gsi/29.txt out/target/product/rk3399_Android10/obj/PACKAGING/vndk_intermediates/libs.txt || ( echo -e \" error: VNDK library list has been changed.\\n\" \" Changing the VNDK library list is not allowed in API locked branches.\"; exit 1 )) ) && (mkdir -p out/target/product/rk3399_Android10/obj/PACKAGING/vndk_intermediates/ ) && (touch out/target/product/rk3399_Android10/obj/PACKAGING/vndk_intermediates/check-list-timestamp )"
Added VNDK-core: android.hardware.device_service@1.0.so
error: VNDK library list has been changed.
Changing the VNDK library list is not allowed in API locked branches.
08:53:55 ninja failed with: exit status 1
#### failed to build some targets (01:47 (mm:ss)) ####
Build android failed!
解决办法:VNDK library list被修改后也要修改build/make路径下提示的问题,根据提示修改build/make/target/product/gsi/29.txt的文件