zoukankan      html  css  js  c++  java
  • jni 出错 ReferenceTable overflow

    一、多次NewByteArray后,报错“ReferenceTable overflow”

    解决办法:释放所有对object的引用

    例: jbyteArray audioArray = jnienv->NewByteArray(frameSize);
           jnienv->SetByteArrayRegion(audioArray,0,frameSize,(jbyte*)fReceiveBuffer);
           jnienv->DeleteLocalRef(audioArray);

    1.FindClass 

    例如,

    jclass ref= (env)->FindClass("java/lang/String");
    
    env->DeleteLocalRef(ref); 
    

     

    2.NewString/ NewStringUTF/NewObject/NewByteArray

    例如,

    jstring     (*NewString)(JNIEnv*, const jchar*, jsize);    
    
    const jchar* (*GetStringChars)(JNIEnv*, jstring, jboolean*);     
    
    void        (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*);
    
    jstring     (*NewStringUTF)(JNIEnv*, const char*);    
    
    const char* (*GetStringUTFChars)(JNIEnv*, jstring, jboolean*);     
    
    void        (*ReleaseStringUTFChars)(JNIEnv*, jstring, const char*);
    
    env->DeleteLocalRef(ref);
    

     

    3.GetObjectField/GetObjectClass/GetObjectArrayElement

    jclass ref = env->GetObjectClass(robj);
    
    env->DeleteLocalRef(ref); 
    

     

    4.GetByteArrayElements

    jbyte* array= (*env)->GetByteArrayElements(env,jarray,&isCopy);
    
    (*env)->ReleaseByteArrayElements(env,jarray,array,0);
    

     

    5.const char* input =(*env)->GetStringUTFChars(env,jinput, &isCopy);

    (*env)->ReleaseStringUTFChars(env,jinput,input);

     

    6.NewGlobalRef/DeleteGlobalRef

     jobject     (*NewGlobalRef)(JNIEnv*, jobject);     
    
    void        (*DeleteGlobalRef)(JNIEnv*, jobject);
    

    例如,

    jobject ref= env->NewGlobalRef(customObj);
    
    env->DeleteGlobalRef(customObj);
  • 相关阅读:
    hdu 4027 Can you answer these queries?
    hdu 4041 Eliminate Witches!
    hdu 4036 Rolling Hongshu
    pku 2828 Buy Tickets
    hdu 4016 Magic Bitwise And Operation
    pku2886 Who Gets the Most Candies?(线段树+反素数打表)
    hdu 4039 The Social Network
    hdu 4023 Game
    苹果官方指南:Cocoa框架(2)(非原创)
    cocos2d 中 CCNode and CCAction
  • 原文地址:https://www.cnblogs.com/wyqfighting/p/3005735.html
Copyright © 2011-2022 走看看