美文网首页andriod
(Android NDK)JNIEnv的使用在C和C++中的区别

(Android NDK)JNIEnv的使用在C和C++中的区别

作者: 60916fc63567 | 来源:发表于2016-06-27 16:44 被阅读47次

对于JNIEnv *env来说,在C中调用:

(*env)->NewStringUTF(env, "Hello from JNI!");

而在C++中如果按照上述调用则会发生'base operand of '->' has non-pointer type '_JNIEnv''错误,需要如下调用:

env->NewStringUTF("Hello from JNI!");

原因:参见jni.h中对于JNIEnv的定义:

#if defined(__cplusplus)

typedef _JNIEnv JNIEnv;

#else

typedef const struct JNINativeInterface* JNIEnv;

#endif

Android Studio中Demo

相关文章

网友评论

    本文标题:(Android NDK)JNIEnv的使用在C和C++中的区别

    本文链接:https://www.haomeiwen.com/subject/ucwzdttx.html