android12上写了一个helloworld的C++程序,编译报错如下:
Offending entries:
system/bin/helloworld
In file included from build/make/core/main.mk:1342:
build/make/core/artifact_path_requirements.mk:26: error: Build failed.
10:48:59 ckati failed with: exit status 1
原因是如果程序要要编译到system/下面要做白名单的声明。如果没有声明,那就会报这个错。
网上的解决方案:build/envsetup.sh 加上export DISABLE_ARTIFACT_PATH_REQUIREMENTS="true"就可以顺利编译通过不再报artifact_path_requirements错误,这里其实就相当于把新版本编译系统中artifact_path_requirements检测关闭。 我没有尝试这种方法。
我的解决方案:在自己模块的mk文件中加入:
PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \
/system/bin/helloworld
然后整编,测试OK