• 周五. 5月 2nd, 2025

如何在 Android.mk 打印信息

如何在 Android.mk 打印信息 

1、 在 Android.mk里打印信息有三种方法:

a. $(info string) 打印正常输入信息   
b. $(warning string) 打印警告信息   
c. $(error string) 打印错误信息

以上三种打印方式:

a. 各个打印方式的string里都可以带上变量;   
b. 如果遇到error打印,将会停止编译进程。

2、 举例说明各个打印函数的方法,以下以packages/apps/Music/Android.mk为例,内容如下:

LOCAL_PATH:= $(call my-dir)     
$(warning "Warning Just for Test LOCAL_PATH is $(LOCAL_PATH)")   
$(info "Info Just for Test LOCAL_PATH is $(LOCAL_PATH)") 

include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional   
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
    src/com/android/music/IMediaPlaybackService.aidl 

LOCAL_PACKAGE_NAME := Music   
LOCAL_SDK_VERSION := current   
LOCAL_CERTIFICATE := platform   
LOCAL_PROGUARD_FLAG_FILES := proguard.flags   
include $(BUILD_PACKAGE)   

# Use the folloing include to make our test apk. 
include $(call all-makefiles-under,$(LOCAL_PATH))

打印结果如下图:

ninja: no work to do. 
[1/2] glob packages/apps/*/Android.bp 
ninja: no work to do. 
packages/apps/Music/Android.mk was modified, regenerating... 
Saved manifest to commit_id.xml 
packages/apps/Music/Android.mk:2: warning: "Warning Just for Test LOCAL_PATH is 
packages/apps/Music" 
"Info Just for Test LOCAL_PATH is packages/apps/Music" 
PRODUCT_COPY_FILES device/rockchip/common/init.rk30board.usb.rc:root/init.rk30board.usb.rc ignored. 
No private recovery resources for TARGET_DEVICE rk3328_box 
[ 50% 1/2] glob packages/apps/*/Android.bp 
[100% 1/1] Ensuring Jack server is installed and started 
Jack server already installed in "/home/seven/.jack-server" 
Server is already running
#### build completed successfully (28 seconds) ####

warning 的打印带有 warning 标志,
info 打印不带有任何标志。
  

3、这里再演示下error打印的结果,将Android.mk文件修改成如下:

LOCAL_PATH:= $(call my-dir)   
$(warning "Warning Just for Test LOCAL_PATH is $(LOCAL_PATH)")   
$(info "Info Just for Test LOCAL_PATH is $(LOCAL_PATH)")   
$(error "Error Just for Test LOCAL_PATH is $(LOCAL_PATH)") 
include $(CLEAR_VARS)   
LOCAL_MODULE_TAGS := optional   
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
    src/com/android/music/IMediaPlaybackService.aidl   
LOCAL_PACKAGE_NAME := Music 
LOCAL_SDK_VERSION := current 
LOCAL_CERTIFICATE := platform   
LOCAL_PROGUARD_FLAG_FILES := proguard.flags 

include $(BUILD_PACKAGE)   
# Use the folloing include to make our test apk. 
include $(call all-makefiles-under,$(LOCAL_PATH))

打印结果如下:

ninja: no work to do. 
[1/2] glob packages/apps/*/Android.bp ninja: no work to do. 
packages/apps/Music/Android.mk was modified, regenerating... 
Saved manifest to commit_id.xml 
packages/apps/Music/Android.mk:2: warning: "Warning Just for Test LOCAL_PATH is 
packages/apps/Music" 
"Info Just for Test LOCAL_PATH is packages/apps/Music" 
packages/apps/Music/Android.mk:4: error: "Error Just for Test LOCAL_PATH is packages/apps/Music". 
15:02:44 ckati failed with: exit status 1
#### failed to build some targets (14 seconds) ####

结果显示编译进程被中断并报错,所以在正常打印信息调试时,error打印函数不建议使用。

相关文章

发表评论

您的电子邮箱地址不会被公开。