Android系统模块不会在构建

时间:2016-12-19 07:13:35

标签: c++ android-source

我在构建android源代码(Nougat)时遇到了问题。我有一个名为poweroffhandler的系统模块,用C ++编写,并有Android.mk文件如下。

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \
    #src_files

LOCAL_SHARED_LIBRARIES := \
    #libraries

LOCAL_MODULE:= poweroffhandler

include $(BUILD_EXECUTABLE)  

当我添加文件$(error error_message)时,它会崩溃(错误消息“error_message”)并停止整个构建。(因此模块包含在构建序列中)但是在构建序列之后它不会产生任何输出。

我已尝试创建与其关联的.rc文件,如下所示。

添加了Android.mk个文件 - >

LOCAL_INIT_RC := PowerOffHandler.rc

创建了一个名为PowerOffHandler.rc

的新文件
service poweroffhandler /system/bin/poweroffhandler
    class core
    user graphics
    group graphics audio
    disabled
    oneshot

当我创建.rc文件时,它会在intermediates文件夹中生成输出,但不会在system/bin文件夹中生成。

奇怪的是,我可以用项目根目录make poweroffhandler来构建模块。然后我没有任何问题,问题是我不能使用build all脚本用于此模块(因此我无法进行自主集成)。

任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:0)

当你编写系统模块时,我找到了答案:

  • 您需要注册Android.mk(例如在顶级文件夹中说include $(call all-subdir-makefiles)
  • 您需要通过说LOCAL_MODULE:= poweroffhandler
  • 将您的模块(由{root}/build/target/product/embedded.mk指定)注册到PRODUCT_PACKAGES += poweroffhandler