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的编译报错

相关推荐
冬奇Lab2 分钟前
ANR实战分析:一次audioserver死锁引发的系统级故障排查
android·性能优化·debug
冬奇Lab8 分钟前
Android车机卡顿案例剖析:从Binder耗尽到单例缺失的深度排查
android·性能优化·debug
ZHANG13HAO1 小时前
调用脚本实现 App 自动升级(无需无感、允许进程中断)
android
圆号本昊2 小时前
【2025最新】Flutter 加载显示 Live2D 角色,实战与踩坑全链路分享
android·flutter
小曹要微笑2 小时前
MySQL的TRIM函数
android·数据库·mysql
mrsyf3 小时前
Android Studio Otter 2(2025.2.2版本)安装和Gradle配置
android·ide·android studio
DB虚空行者3 小时前
MySQL恢复之Binlog格式详解
android·数据库·mysql
liang_jy5 小时前
Android 事件分发机制(一)—— 全流程源码解析
android·面试·源码
峥嵘life6 小时前
2026 Android EDLA 认证相关资源网址汇总(持续更新)
android·java·学习
kkk_皮蛋6 小时前
在移动端使用 WebRTC (Android/iOS)
android·ios·webrtc