在编译so文件的c或cpp文件之前中加入以下代码
#include<android.log>
#define TAG "TAG_NAME"
#define LOGW(msg) __android_log_write(ANDROID_LOG_WARN, TAG, msg)
注: __android_log_write(ANDROID_LOG_WARN, TAG, a)
1.ANDROID_LOG_WARN
表示日志级别,这里相当于Log.w(TAG,msg)
对应的其它级别为ANDROID_LOG_DEBUG Log.d(TAG, msg) ......
2.TAG 标记TAG
3.msg 要打印的信息
这样就可以在c或cpp中使用LOGW("message")打印日志信息了。
如果现在直接编译会报__android_log_write 方法undefined错误
这是因为直接编译的时候只会引入默认的几个lib,如果要使用log,还得手动引入liblog
解决方案为:
修改Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloJni
LOCAL_SRC_FILES := HelloJni.c
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)
本文介绍如何在C/C++代码中使用Android的日志系统。通过包含特定头文件和定义宏,开发者可以在Android应用的本地代码中轻松地打印不同级别的日志信息。文章还解释了解决__android_log_write未定义符号的方法。
832

被折叠的 条评论
为什么被折叠?



