编译Hikey970的AOSP遇LOCAL_MODULE_TAGS过时错误,求修复
我之前编译Hikey970的AOSP时也碰到过一模一样的问题——本质是新版AOSP已经废弃了LOCAL_MODULE_TAGS这个编译变量,但Linaro提供的Hikey设备树代码还在沿用旧语法。下面是亲测有效的修复步骤:
第一步:打开出错的Android.mk文件
用你常用的文本编辑器打开device/linaro/hikey/wpan/uim/Android.mk,找到包含LOCAL_MODULE_TAGS := eng的那一行。第二步:替换过时的代码
将LOCAL_MODULE_TAGS := eng替换成:LOCAL_MODULE_TAGS := optionaloptional标签表示该模块为非默认编译项,和原来eng标签的核心意图(仅在eng版本中编译)是匹配的。第三步:通过产品配置限制模块仅在eng变体编译
接下来找到Hikey970的产品配置文件(一般是device/linaro/hikey/hikey970.mk),在文件末尾添加这段代码:# 仅在eng编译变体中包含uim模块 ifeq ($(TARGET_BUILD_VARIANT),eng) PRODUCT_PACKAGES += uim endif这样设置后,只有当你编译eng版本的AOSP时,uim模块才会被纳入构建流程,完美替代原来
LOCAL_MODULE_TAGS := eng的作用。第四步:重新执行构建
保存所有修改后的文件,回到AOSP源码根目录,重新运行make -j4,这个错误就会消失,构建可以正常继续了。
如果替换optional后仍有问题,也可以尝试直接删掉LOCAL_MODULE_TAGS := eng这一行(新版AOSP中如果不指定该变量,默认就是optional),保留上面的产品配置代码即可,效果是一样的。
内容的提问来源于stack exchange,提问作者Meduto




