JNI converting jstring to char *

后端 未结 2 1746
逝去的感伤
逝去的感伤 2020-11-27 11:03

I have passed a URL string from Java to C code as jstring data type through the use of JNI. And my library method needs a char * as url.

Ho

2条回答
  •  隐瞒了意图╮
    2020-11-27 11:59

    Thanks Jason Rogers's answer first.

    In Android && cpp should be this:

    const char *nativeString = env->GetStringUTFChars(javaString, nullptr);
    
    // use your string
    
    env->ReleaseStringUTFChars(javaString, nativeString);
    

    Can fix this errors:

    1.error: base operand of '->' has non-pointer type 'JNIEnv {aka _JNIEnv}'

    2.error: no matching function for call to '_JNIEnv::GetStringUTFChars(JNIEnv*&, _jstring*&, bool)'

    3.error: no matching function for call to '_JNIEnv::ReleaseStringUTFChars(JNIEnv*&, _jstring*&, char const*&)'

    4.add "env->DeleteLocalRef(nativeString);" at end.

提交回复
热议问题