Eclipse NDK 打印LOG信息(都在jni目录下操作)
http://blog.csdn.net/u013045971/article/details/46448975
1 在.c文件中,引用头文件,定义TAG、LOG宏:
#include <android/log.h>
#define TAG "JNITag" #define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__) // 定义debug信息 #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__) // 定义error信息 #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG,__VA_ARGS__) // 定义info信息 #define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG,__VA_ARGS__)
ANDROID_LOG_VERBOSE:枚举类型,用来区分LOG等级,比如红色的error酱紫。
TAG:log输出的标记。
__VA_ARGS__:要打印的log信息
2 配置Android.mk文件
添加llog是有关log的一个库
# for logging LOCAL_LDLIBS += -llog
配置完成后如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := testndk LOCAL_SRC_FILES := com_my_testndk_JniClient.c # for logging LOCAL_LDLIBS += -llog include $(BUILD_SHARED_LIBRARY) #以下为加载的第三方so配置 include $(CLEAR_VARS) LOCAL_MODULE := libload LOCAL_SRC_FILES := ./mylib/$(TARGET_ARCH_ABI)/libload.so include $(PREBUILT_SHARED_LIBRARY)
3 c中调用
JNIEXPORT jstring JNICALL Java_com_my_testndk_JniClient_run(JNIEnv *env, jclass class, jobject Application, jobject Context, jstring libPath, jobject ClassLoader, jobject pkg) { LOGD("Library successfully loaded!"); LOGI("user info----name:%s, age:%d, sex:%s.", "xxx", 18, "男"); return "OK"; }