jstring return in JNI program

前端 未结 2 906
北海茫月
北海茫月 2021-01-01 10:48

This is JNI code.

Java code:

public class Sample1 {
 
    public native String stringMethod(String te         


        
2条回答
  •  醉话见心
    2021-01-01 11:44

    There are several ways but the best I got by converting const char * to c++ string and then to jbyteArray, and its easy to conversion of byteArray to UTF-8 on java side.

    C++ side:

    const char* string = propertyValue;
    std::string str = string;
    
    jbyteArray array = env->NewByteArray(str.length());
    env->SetByteArrayRegion(array,0,str.length(),(jbyte*)str.c_str());
    
    
    return array;
    

    Java/kotlin side:

    String((array), Charset.defaultCharset()))
    

提交回复
热议问题