zoukankan      html  css  js  c++  java
  • Android NDK开发 Jni中打日志LOG(二)

     HelloJni.c文件中,加入头文件和函数声明。最终文件如下:

    #include <jni.h>
    #include <string.h>
    #include<android/log.h>
    
    #define  LOG    "HelloJni"
    #define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__) // 定义LOGD类型
    #define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__) // 定义LOGI类型
    #define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__) // 定义LOGW类型
    #define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__) // 定义LOGE类型
    
    JNIEXPORT jstring JNICALL
    Java_ndk_test_com_testndk_TestJni_getString(JNIEnv *env, jclass type) {
        LOGI("call from jni!");
        return (*env)->NewStringUTF(env, "from jni");
    }

    记得#include<android/log.h>

    除了ANDROID_LOG_INFO这个日志级别,还有如下的:

     ANDROID_LOG_UNKNOWN
     ANDROID_LOG_DEFAULT 
     ANDROID_LOG_VERBOSE
     ANDROID_LOG_DEBUG
     ANDROID_LOG_INFO
     ANDROID_LOG_WARN
     ANDROID_LOG_ERROR
     ANDROID_LOG_FATAL
     ANDROID_LOG_SILENT

    如果出现 undefined reference to `__android_log_print'的编译异常在android studio的build文件里面

    需要添加 ldLibs.addAll(['android', 'log'])

    ndk {
                moduleName = 'hello-jni'
                ldLibs.addAll(['android', 'log'])
         }

    好了,运行程序吧 

    工具类

    #ifndef LIBJPEG_JNILOG_H
    #define LIBJPEG_JNILOG_H
    
    #define  LOG    "libimg"
    #define LOGOPEN 1 //日志开关,1为开,其它为关
    
    #if(LOGOPEN==1)
    #define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__) // 定义LOGD类型
    #else
    #define LOGD(...) NULL
    #endif
    
    
    #if(LOGOPEN==1)
    #define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__) // 定义LOGI类型
    #else
    #define LOGI(...) NULL
    #endif
    
    #if(LOGOPEN==1)
    #define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__) // 定义LOGW类型
    #else
    #define LOGW(...) NULL
    #endif
    
    #if(LOGOPEN==1)
    #define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__) // 定义LOGE类型
    #else
    #define LOGE(...) NULL
    #endif
    
    #endif //LIBJPEG_JNILOG_H
  • 相关阅读:
    MicXP程序爱好者
    cnblogs上的mysql学习心得
    iwebship 购物系统 PHP lamp环境
    可以购买的网址
    模板网址
    学习ecshop 教程网址
    ecshop数据库操作函数
    yzoj1568: 数字组合 题解
    yzoj1891 最优配对问题 题解
    yzoj1985 最长公共单调上升子序列 题解
  • 原文地址:https://www.cnblogs.com/mingfeng002/p/5845753.html
Copyright © 2011-2022 走看看