Android Studio NDK开发在C代码中将Log输出到logcat上面

Android Ndk开发中在原生代码那边是不能用printf函数的,用了也输不出来。需要android提供的log.h服务。
第一步:在对应模块下的build.gradle文件中ndk节点配置需要加入log配置:

   ndk{
            moduleName "javacallc"  //so文件,编译生产的动态链接库文件自动加前缀lib
            ldLibs "log"  //实现 log
            abiFilters "armeabi", "armeabi-v7a", "x86","x86_64"
        }

第二步:在头文件增加如下内容


#define  LOG    "JavaCallCDemoLog" // 这个是自定义的LOG的标识
#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类型
#define LOGF(...)  __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__) // 定义LOGF类型

Android Studio NDK开发在C代码中将Log输出到logcat上面_第1张图片

第三步:在代码里面就可以使用了,把他当做printf来用就是了。

  LOGI("fromJava = %p",&fromJava);

参考1
参考2

你可能感兴趣的:(Android初体验,C/C++,android中级,AndroidNDK)