在作本身项目的时候,因为须要在JNI使用log的功能,定义代码以下:android
#ifndef ALOHA_JNI_LOG_H #define ALOHA_JNI_LOG_H #include "jni.h" #include "android/log.h" #include <cstdlib> #ifndef JNI_LOG #define JNI_LOG "jni_log" #endif //build log #define ALOGE(...) __android_log_print(ANDROID_LOG_ERROR, JNI_LOG, __VA_ARGS__) #define ALOGD(...) __android_log_print(ANDROID_LOG_DEBUG, JNI_LOG, __VA_ARGS__) #define ALOGI(...) __android_log_print(ANDROID_LOG_INFO, JNI_LOG, __VA_ARGS__) #define ALOGW(...) __android_log_print(ANDROID_LOG_WARN, JNI_LOG, __VA_ARGS__) #endif //ALOHA_JNI_LOG_H
而后在一个c++文件中导入头文件:c++
#include "../jni_log.h"
结果报错了,错误信息以下:网站
"undefined reference to `__android_log_write".
一看是说log文件没有导入成功,在网站上查了挺久都是那么两种方法,后来在overflow里面查到了解决办法,须要单独连接对应的库:ui
target_link_libraries(hello-jni android speech_vad ${log-lib} ) #这里要单独连接一下,我也不知道为啥,若是有大神知道,麻烦指点一下 target_link_libraries( speech_vad ${log-lib} )
对应解决方案地址:google