JNI 中打印Android Log 日志
- c 或 c++ 文件中引入日志打印 头文件
#include <android/log.h>
- 定义宏,方便调用
#define TAG "sky"
// __VA_ARGS__ 代表 ...的可变参数
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__);
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__);
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__);
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__);
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__);
- 使用
extern "C" JNIEXPORT jstring JNICALL
Java_com_sky_jnidynamicregistration_MainActivity_stringFromJNI(
JNIEnv* env,
jobject /* this */) {
std::string hello = "Hello from C++";
// 未定义宏时,使用方式,比较麻烦
__android_log_print(ANDROID_LOG_INFO, "sky", "日志打印");
//使用定义宏后调用
LOGV("verbose 级别日志")
LOGW("warm 级别日志")
//支持格式化输出
int a = 1;
LOGI("info 级别日志 %d",)
LOGD("debug 级别日志 %s","嘿嘿")
LOGE("error 级别日志 %p ",&a)
return env->NewStringUTF(hello.c_str());
}