Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Llamar a DeleteLocalRef en la interfaz nativa de java

Estoy devolviendo un jstring de un método JNI. Elimino la referencia local a ella antes de devolver el valor.

JNIEXPORT jstring JNICALL TestJNIMethod( JNIEnv* env, jclass ) { jstring test_string = env->NewStringUTF( "test_string_value" ); env->DeleteLocalRef( test_string ); return test_string; } 

¿Podría el método JAVA llamante seguir siendo capaz de acceder al jstring devuelto o el recolector de basura limpiaría la memoria?

  • Técnica subyacente de FaceDetector de Android
  • Android NDK / JNI: Creación de una biblioteca compartida que depende de otras bibliotecas compartidas
  • CLI en DalvikVM falla en JNI lib
  • Un proyecto ndk simple usando la biblioteca de Eigen y jni
  • Callback Listener en Unity - Cómo llamar al método de archivo de script desde UnityPlayerActivity en Android
  • JNI manteniendo una referencia global a un objeto, accediendo a ella con otros métodos JNI. Mantener un objeto C ++ activo en varias llamadas JNI
  • Cómo depurar una aplicación en Android con GDBSERVER?
  • Decodificación y manipulación de imágenes mediante JNI en android
  • One Solution collect form web for “Llamar a DeleteLocalRef en la interfaz nativa de java”

    No, no obstante, tu código funcionará en versiones de Android anteriores a ICS. De ICS en este código correctamente fallará.

    En general, no es necesario borrar las referencias locales, una vez que la función JNI regrese a Java, las referencias obtendrán GC'd.

    La excepción a esta regla es si se crean muchos de ellos, tal vez en un bucle. Entonces es posible llenar la tabla de referencia local. Consulte IBM: Descripción general de las referencias de objetos JNI .

    Debe leer JNI Local Reference Changes en ICS . Incluso si no está escribiendo para Android, todavía identifica muchos errores comunes.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.