安卓P 编译报 找不到这个文件 cutils/log.h
一个工具的源码在安卓8上能编译通过,但是在安卓P上却编译失败,报找不到这个头文件 cutils/log.h,
一开始我以为是安卓P源码根目录没有这个头文件,然后我就在安卓源码根目录,find -name log.h 然后发现有这个文件,/system/core/libcutils/include/cutils/log.h 那么就应该不是源码的问题。
那么我就找了,其他能编译通过且 #include <cutils/log.h> 这个头文件的模块,发现他们的Android.mk文件都有包含这个库文件,
LOCAL_SHARED_LIBRARIES += libcutils
果然在我自己的模块下加了这个库之后,模块就能编译通过了。
看来是安卓8和安卓P 的编译规则有点区别
但是看编译信息提示
system/core/libcutils/include_vndk/cutils/log.h:38:2: warning: "Deprecated: don’t include cutils/log.h, use either android/log.h or log/log.h"
看来安卓P不想让我们用 这个cutils/log.h 头文件。
因此我再Android.mk 下去掉 libcutils 库,在源码里面将cutils/log.h 换成log/log.h或者android/log.h再编译,果然编译也能通过,且工具能正常运行。