Android aoap开发常见问题之package_allowed_list.txt导致的编译报错
原因是在frameworks/base/core/java/com/xxx 创建了自定义目录,以实现自定义业务逻辑,但在增量编译阶段报错
完整错误如下:
Error: out/soong/.intermediates/frameworks/base/framework-minus-apex/android_common/aligned/framework-minus-apex.jar contains class file com.xxx.xxx.xxx$1, whose package name "com.xxx.xxx" is empty or not in the allow list build/soong/scripts/check_boot_jars/package_allowed_list.txt of packages allowed on the bootclasspath.
framework下的代码默认是被编译进framework-minus-apex.jar,我们的代码也的确如此,check_boot_jars 会对 bootclasspath 上的 JAR 包进行严格检查,要求其中所有类的包名必须出现在 allowlist 文件中。
解决方案:
在allowlist文件也就是对应的package_allowed_list.txt 添加规则即可,首先查看该文件内容
文件开头注释写得很清楚了,需要使用正则编写,下面是个例子 仅供参考。
com\.xxx\.xxx\..*
com\.xxx\.xxx\.*