首页 > 代码库 > NDK之打印调试信息Log
NDK之打印调试信息Log
第一步:gradle配置ndk
ndk { moduleName "Iso8583Lib" ldLibs "log", "z", "m" abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库,目前可有可无。 }
第二步:在需要的C文件加载头
#include <android/log.h>
第三步:定义打印方便使用的函数
#define LOG_TAG "C_TAG"#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
第四步:测试使用
#include <jni.h>#include <com_example_lanhe_android_jnistringdemo_jni_HelloWorld.h>#include <android/log.h>#define LOG_TAG "C_TAG"#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)JNIEXPORT jstring JNICALL Java_com_example_lanhe_1android_jnistringdemo_jni_HelloWorld_getHelloWorld (JNIEnv *env, jobject thiz){ jstring hello = (*env)->NewStringUTF(env, "Hello Jni"); int helloLen=(*env) -> GetStringLength(env,hello); LOGD("hello.length=%d",helloLen); return hello;}
结果如下:
额外:使用 __android_log_write 也是可以的。
备注:
调用其中的日志打印:
int __android_log_write(int prio, const char *tag, const char *text);
第一个参数为打印级别,为以下枚举之一:
typedef enum android_LogPriority { ANDROID_LOG_UNKNOWN = 0, ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */ ANDROID_LOG_VERBOSE, ANDROID_LOG_DEBUG, ANDROID_LOG_INFO, ANDROID_LOG_WARN, ANDROID_LOG_ERROR, ANDROID_LOG_FATAL, ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */} android_LogPriority;
参考资料:
http://blog.csdn.net/h183288132/article/details/50379450
NDK之打印调试信息Log
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。