有時(shí)android報(bào)錯(cuò)堆棧顯示錯(cuò)誤碼512,并顯示多少個(gè)object、string、class,說明該類型某變量沒有釋放。
返回java層的不必release,gc自動(dòng)回收。
釋放方法
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);