有时android报错堆栈显示错误码512,并显示多少个object、string、class,说明该类型某变量没有释放。
返回java层的不必release,gc自动回收。
释放方法
1.env->DeleteLocalRef(ref)
- jclass ref= (env)->FindClass(“java/lang/String”);
- jclass ref = env->GetObjectClass(robj);
- jstring (NewString)(JNIEnv, const jchar*, jsize);
- jstring (NewStringUTF)(JNIEnv, const char*);
2. env->DeleteGlobalRef(globalRef);
- jobject globalRef = env->NewGlobalRef(customObj);
3. env->ReleaseStringUTFChars(jinput,input);
const char* input =env->GetStringUTFChars(jinput, &isCopy);
4. env->ReleaseStringUTFChars( jstring, const char*)
const char* (GetStringUTFChars)(JNIEnv, jstring, jboolean*);
5. env->ReleaseByteArrayElements(jarray,array,0);
jbyte* array= env->GetByteArrayElements(jarray,&isCopy);