jni调用.so库传值字符串 求助
现有一项目 需要java调用 C++的.so库 需要传字符串
代码如下
extern "C" {
JNIEXPORT jstring JNICALL Java_com_plustimes_pptestand_BackData_backData(JNIEnv* env, jobject obj,jstring number){
// const char *str = env->GetStringUTFChars(env, number);
// const char* str = env->GetStringUTFChars(number, false);
// const char* str = env->NewStringUTF(number);
// CCLog("gm---------0----------%d",str);
};
}
如代码显示 传值进来的字符串 number 需要转成 C++层可用的
求 转 jstring转 char 代码 以上代码只有
const char* str = env->GetStringUTFChars(number, false);
这段可以交叉编译成功 但取出来的数值不对 是一串数字 JNI Java C++
[解决办法]
const char* str = (char*)env->GetStringUTFChars(number, false); 看看,或者
str = (char*)(*env)->GetStringUTFChars(env, jstring, NULL);