Dépassement du panneau de référence (max = 512) JNI

Je suis un peu coincé avec celui-ci … Débit débité de référence (max = 512), je suis sûr qu'il s'agit du nombre de références locales créées dans mon appel de méthode natif … Pour contourner le problème, j'ai même Essayé de supprimer les références locales de l'appel natif; Mais je suis toujours incapable de résoudre le problème … Je passe un 2D Array; Qui est approximativement 1024 X 1024 …

Voici la trace d'erreur à laquelle je fais allusion … Je suis sûr que le nombre d'objets entiers créés cause le problème pour mon cas … comme vous devriez pouvoir voir 506 (I) Objets créés … Et Alors JNI frappe le goulet d'étranglement …

  • Comment gérer l'événement de clic dans Listview dans Android?
  • Afficher le bouton de retour / retour sur Android PreppyScreen anonyme?
  • Est-ce que Androidview Web prend en charge les animations CSS3 WebKit?
  • Dans Android, comment mesurer le trafic de données par interface par application
  • 'Org.apache.http.HttpEntity' est obsolète. Comment résoudre cette erreur dans le studio Android?
  • BluetoothAdapter ActionDiscoveryFinished
  • /dalvikvm(9498): GC_CONCURRENT freed 1981K, 41% free 6891K/11527K, external 1625K/2137K, paused 2ms+3ms /dalvikvm(9498): ReferenceTable overflow (max=512) /dalvikvm(9498): Last 10 entries in JNI local reference table: /dalvikvm(9498): 502: 0x40710920 cls=[I (4092 bytes) /dalvikvm(9498): 503: 0x40711920 cls=[I (4092 bytes) /dalvikvm(9498): 504: 0x40712920 cls=[I (4092 bytes) /dalvikvm(9498): 505: 0x40713920 cls=[I (4092 bytes) /dalvikvm(9498): 506: 0x40714920 cls=[I (4092 bytes) /dalvikvm(9498): 507: 0x40715920 cls=[I (4092 bytes) /dalvikvm(9498): 508: 0x40716920 cls=[I (4092 bytes) /dalvikvm(9498): 509: 0x40717920 cls=[I (4092 bytes) /dalvikvm(9498): 510: 0x40718920 cls=[I (4092 bytes) /dalvikvm(9498): 511: 0x40719920 cls=[I (4092 bytes) /dalvikvm(9498): JNI local reference table summary (512 entries): /dalvikvm(9498): 1 of Ljava/lang/Class; 236B /dalvikvm(9498): 1 of Ljava/lang/Class; 284B /dalvikvm(9498): 1 of Ljava/lang/Class; 572B /dalvikvm(9498): 2 of Ljava/lang/String; 28B (2 unique) /dalvikvm(9498): 506 of [I 4092B (506 unique) /dalvikvm(9498): 1 of [Ljava/lang/String; 28B /dalvikvm(9498): Memory held directly by tracked refs is 2071728 bytes /dalvikvm(9498): Failed adding to JNI local ref table (has 512 entries) /dalvikvm(9498): "main" prio=5 tid=1 RUNNABLE /dalvikvm(9498): | group="main" sCount=0 dsCount=0 obj=0x4001f198 self=0xce60 /dalvikvm(9498): | sysTid=9498 nice=0 sched=0/0 cgrp=default handle=-1345006528 /dalvikvm(9498): | schedstat=( 6990020745 1042358411 1629 ) /dalvikvm(9498): at pv.ndk.UcMobile.losInitialization(Native Method) /dalvikvm(9498): at pv.ndk.NdkActivity.onCreate(NdkActivity.java:69) /dalvikvm(9498): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) /dalvikvm(9498): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 

    Voici le code que j'utilise: S'il vous plaît, faites-moi savoir ce que je fais mal?

     JNIEXPORT jboolean JNICALL Java_pv_ndk_UcMobile_losInitialization (JNIEnv * env, jobject jobj , jint height, jint width , jobjectArray elements){ elevData = new unsigned int*[height]; for(i=0; i< height; i++) { elevData[i] = new unsigned int[width]; jintArray oneDim= (jintArray)env->GetObjectArrayElement( elements, i); jint *element=env->GetIntArrayElements(oneDim, 0); for(j=0; j< width; j++) { elevData[i][j]= element[j]; } // This does not seem to be providing with the desired result // env->DeleteLocalRef(element); //I even tried with this approach env->ReleaseIntArrayElements(oneDim, element , 0); } return losObject.Init(elevData,1,10,2,2); } 

  • Explication d'Android Xfermode
  • Comment supprimer / masquer le logo Paypal de Card.io Phonegap iOS et Android?
  • La fonction de dictée hors ligne est-elle dans la partie Jelly Bean d'AOSP et, dans l'affirmative, dans quel package est-ce?
  • Comment changer la couleur du bouton de couleur lorsque vous appuyez sur Android?
  • Définir dynamiquement la hauteur de ViewPager
  • Support de compatibilité Android / bibliothèque de compatibilité - utilisez v4 ou v13?
  • One Solution collect form web for “Dépassement du panneau de référence (max = 512) JNI”

    Vous devez supprimer la référence locale de l'objet env->DeleteLocalRef(oneDim); : env->DeleteLocalRef(oneDim); .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.