1.JNI开发时经常需要使用到jstring和string的转换,还有C++多线程中使用JNIEnv,因此特意写了这个类,方便以后的开发使用。
注意: 如果要使用打印日志的LOGI和LOGE需要在mk文件中链接log库
LOCAL_LDLIBS := -llog
2.在C++创建的多线程中使用JNIEnv中的findclass方法会出现找不到类库的问题,是因为只能在主线程中使用findclass
去查找类库,因此如果需要在c线程中调用java中的方法的话 需要在主线程中使用GetMethodID获取出相应的JAVA方法
的ID,然后使用Attach后的JNIEnv调用java方法。LOCAL_LDLIBS := -llog
JNIUtil.h 代码
#ifndef JNI_UTIL_H
#define JNI_UTIL_H
#include <jni.h>
#include <android/log.h>
#include <string>
using namespace std;
#define LOG_TAG "JNI_LOG"
#define LOGI(...) __android_lo