在编译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)