You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

编译Hikey970的AOSP遇LOCAL_MODULE_TAGS过时错误,求修复

修复Hikey970 AOSP编译时「LOCAL_MODULE_TAGS := eng is obsolete」错误

我之前编译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 := optional
    

    optional标签表示该模块为非默认编译项,和原来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

火山引擎 最新活动