Android单编模块报FAILED: ninja: unknown target ‘MODULES-IN-vendor错误解决

有时我们需要单编Android AOSP一个APK或库文件或二进制,用来调试。

但可能这个模块本身是不参与系统整编编译的。我们在使用mmm或mm单独编译时就会报这个错误。

在检查Android.mk或Android.bp无误后,就要怀疑是不是这个目录的上级目录是不是没有包含这个目录的Android.mk,导致编译系统无法加载这个目录的Android.mk从而报unknown target错误。

例如:我的模块路径为vendor/xxx/hardware/audio/external/alsa-utils-1.2.8/Android.mk

vendor/xxx/hardware/audio/external这个目录下也有一个Android.mk内容为:

复制代码
LOCAL_PATH := $(call my-dir)

SUBDIR_EXT :=
ifeq ($(VENDOR_USING_ALSA_LIB), true)
SUBDIR_EXT += \
                alsa-lib-1.2.8 \
                alsa-utils-1.2.8
endif

include $(call all-named-subdir-makefiles, ${SUBDIR_EXT})

可以看到只有定义了VENDOR_USING_ALSA_LIB才会加载alsa-utils-1.2.8下的Android.mk

而这个宏默认未定义,所以单编alsa-utils-1.2.8就会报错

我们只需要定义这个宏或者把判断注释掉就可以解决unknown target的编译报错

相关推荐
城东米粉儿13 小时前
Android Glide 笔记
android
城东米粉儿13 小时前
Android TheRouter 笔记
android
城东米粉儿19 小时前
Android AIDL 笔记
android
城东米粉儿19 小时前
Android 进程间传递大数据 笔记
android
城东米粉儿20 小时前
Android KMP 笔记
android
冬奇Lab21 小时前
WMS核心机制:窗口管理与层级控制深度解析
android·源码阅读
松仔log1 天前
JetPack——Paging
android·rxjava
城东米粉儿1 天前
Android Kotlin DSL 笔记
android
城东米粉儿1 天前
Android Gradle 笔记
android