C和C++与Java字符串的互相操作

2019-09-25  本文已影响0人  凌烟醉卧

C或C++中使用NewStringUTF来创建字符串

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(
        JNIEnv *env,
        jobject /* this */) {
    std::string hello = "你好";
    return env->NewStringUTF(hello.c_str());
}

使用GetStringChars或者GetStringUTFChars将Java字符串转为C或者C++字符串

extern "C"
JNIEXPORT void JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(JNIEnv *env, jobject instance,
                                                          jstring s_) {
    const char *s = env->GetStringUTFChars(s_, 0);
    env->ReleaseStringUTFChars(s_, s);
}
上一篇下一篇

猜你喜欢

热点阅读