Android NDK模块依赖未定义模块log,添加APP_ALLOW_MISSING_DEPS无效求修复
解决NDK编译报错"Module depends on undefined modules: log"的问题
你已经尝试添加APP_ALLOW_MISSING_DEPS := true但没解决问题,咱们来从你的Android.mk配置里找根源:
你的配置里同时用了LOCAL_LDLIBS += -llog和LOCAL_SHARED_LIBRARIES := liblog,这就是问题所在——liblog是NDK自带的系统库,不需要通过LOCAL_SHARED_LIBRARIES声明依赖,这个变量主要用来引用你自己定义的模块或第三方预编译库,反而会让NDK误以为你要依赖一个未定义的本地模块。
修复步骤
- 直接移除Android.mk里的
LOCAL_SHARED_LIBRARIES := liblog这一行 - 保留
LOCAL_LDLIBS += -llog,这才是链接系统log库的正确方式
修改后的Android.mk内容如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libMPMWhiskeyCoveNative LOCAL_MODULE_CLASS := SHARED_LIBRARIES LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := WhiskeyCoveNative.c LOCAL_LDLIBS += -llog LOCAL_PROPRIETARY_MODULE := true include $(BUILD_SHARED_LIBRARY)
另外,APP_ALLOW_MISSING_DEPS := true其实也不需要添加,因为log库是NDK内置的系统库,用LOCAL_LDLIBS += -llog就能正确找到并链接。
内容的提问来源于stack exchange,提问作者aswin yadav
相关产品推荐
相关产品推荐

