Android 系统模块在构建时不生成输出
Android System Module does not generate output on build
我在构建 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
脚本(所以我不能进行自主集成)。
任何帮助将不胜感激,谢谢
我找到了答案,当你写一个系统模块时:
- 您需要注册您的
Android.mk
(例如在顶级文件夹中说 include $(call all-subdir-makefiles)
)
- 您需要通过说
PRODUCT_PACKAGES += poweroffhandler
将您的模块(由 LOCAL_MODULE:= poweroffhandler
指定)注册到 {root}/build/target/product/embedded.mk
我在构建 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
脚本(所以我不能进行自主集成)。
任何帮助将不胜感激,谢谢
我找到了答案,当你写一个系统模块时:
- 您需要注册您的
Android.mk
(例如在顶级文件夹中说include $(call all-subdir-makefiles)
) - 您需要通过说
PRODUCT_PACKAGES += poweroffhandler
将您的模块(由
LOCAL_MODULE:= poweroffhandler
指定)注册到 {root}/build/target/product/embedded.mk