如何在 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打印函数不建议使用。