在Android O中 编译vendor下面的ModemTestModel模块 ,发现编译错误
如图所示
ninja: error: unknown target 'ModemTestMode'
这个模块在device-vendor.mk中定义了啊 ,怎么会找不到?
```
#Ims modules are intentionally set to optional
#so that they are not packaged as part of system image.
#Hence removing them from PRODUCT_PACKAGES list
#PRODUCT_PACKAGES += $(IMS)
PRODUCT_PACKAGES += $(TELEPHONY_APPS)
#TELEPHONY_APPS
TELEPHONY_APPS += ModemTestMode
```
回到模块中 Android.mk
```
ifneq ($(TARGET_HAS_LOW_RAM),true)
ifeq ($(TARGET_USES_QCOM_BSP_ATEL), true)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional eng
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := ModemTestMode
LOCAL_CERTIFICATE := platform
LOCAL_JAVA_LIBRARIES := qcrilhook telephony-common
include $(BUILD_PACKAGE)
#$(shell cp -r $(LOCAL_PATH)/labtest-apns-conf.xml $(TARGET_OUT)/etc/)
endif
endif
```
最开始就有两个判断条件 。
原来是第一个条件的问题,
在产品中定义
```
#Go variant flag
TARGET_HAS_LOW_RAM := true
```
只要TARGET_HAS_LOW_RAM不是true,就执行下面...
所以直接把这个判断条件注释掉了 ,编译通过