안녕하세요 아즈라엘 입니다. 


jni 를 사용하는 프로젝트에서 ..ndk-build 시 아래와 같은 gcc error 가 발생됩니다. 


error message : request for member 'getenv' in something not a structure or union


jint JNI_OnLoad(JavaVM* vm, void* reserved)

{

    UnionJNIEnvToVoid uenv;

    uenv.venv = NULL;

    jint result = -1;

    JNIEnv* env = NULL;

    

    LOGI("JNI_OnLoad");


    if (vm->GetEnv(&uenv.venv, JNI_VERSION_1_4) != JNI_OK) { // 이부분에서 발생

        LOGE("ERROR: GetEnv failed");

        goto bail;

    }

    env = uenv.env;


    if (registerNatives(env) != JNI_TRUE) {

        LOGE("ERROR: registerNatives failed");

        goto bail;

    }

    

    result = JNI_VERSION_1_4;

    

bail:

    return result;

}


굵은 글씨로 된 곳에서 발생되는거 같은데요..

이유는 확실하게 잘 모르겠만... Android.mk 파일에 

LOCAL_CFLAGS := -DANDROID_NDK \ -DDISABLE_IMPORTGL


플레그 값 세팅이 되어 있는데 .. 이걸 바꾸면 에러가 더 발생되는거 같은데요..

jni 할때 JNI_OnLoad 이 C style  과 관련이 있는지요?