读书人

AndroidRuntime:getJNIEnv() returns

发布时间: 2012-12-31 11:57:52 作者: rapoo

AndroidRuntime::getJNIEnv() returns NULL


5down vote

First, don't use AndroidRuntime::getJNIEnv(). That's not part of the NDK API. You should be using the JNI "GetEnv" function instead.

Second, GetEnv returns NULL if the current thread is not attached to the VM. (Remember, JNIEnv is thread-specific.) If you created the thread yourself, you will need to use the JNI AttachCurrentThread function to attach it.

Both of these require a JavaVM pointer. There's only one of these per process, so you can get it during JNI_OnLoad or a setup call from your program (GetJavaVM function) when you have a JNIEnv passed in.

If you haven't yet, read through the?JNI Tips?page (which includes references to some comprehensive JNI docs).


读书人网 >Android

热点推荐