¿Cómo especificar matriz de clase en el parámetro GetMethodID método de firma?

¿Cómo se especifica en GetMethodID parámetro de la firma de función que la función que estoy recibiendo id para acepta matriz de una clase personalizada?

Tengo una función en java con la firma:

 void getData( ListDataClass[] arryData ) 

Y quiero obtener el id de método de esta función de la interfaz JNI utilizando la función GetMethodID.
Para eso he mencionado en el parámetro de la firma de la función como siguiendo:

 "([myPackeg/ListDataClass)V" 

Pero esto no está funcionando y consigo excepción como Method Not Found . Lo mismo funciona si especifico matriz de clase de cadena.

Las firmas de tipo JNI para clases completamente calificadas toman la forma:

 Lclass/path/ClassName; 

Por ejemplo:

 "Ljava/lang/String;" // String "[Ljava/lang/String;" // String[] (array) 

Se construye una firma de método a partir de estos, colocando primero los argumentos entre paréntesis y el tipo de retorno después del paréntesis derecho. Por ejemplo:

 long f (int n, String s, int[] arr); // Java method "(ILjava/lang/String;[I)J" // JNI type signature 

Usted puede encontrar los documentos para las firmas de tipo JNI aquí , que es donde tomé prestado el ejemplo anterior.

En su ejemplo específico:

 void getData( ListDataClass[] arryData ) // Java method "([Lclass/path/ListDataClass;)V" // JNI type signature 

Nota: la firma del tipo exacto depende de la ruta de la clase.

A continuación, puede encontrar el ID del método como sigue (suponiendo que C ++ y un puntero JNIEnv llamado env):

 jclass clz = env->FindClass("class/path/ListDataClass"); jmethodID mid = env->GetMethodID(clz, "getData", "([Lclass/path/ListDataClass;)V"); 
  • Cómo utilizar el archivo existente .so en la aplicación android
  • Casting un tipo largo de C ++ a un jlong ​​de JNI
  • CheckJNI de Android: ¿Cómo apagarlo / encender (en un emulador)? La documentación parece estar defectuosa
  • ¿Cómo crear un objeto con JNI?
  • ¿Cómo puedo realizar el procesamiento de eventos sin bloqueo en Android?
  • OpenCV para Android: ejemplo simple para convertir la imagen a escala de grises
  • Android NDK - NativeActivity vs JNI lib
  • Jni llama al método java que toma una interfaz java personalizada como parámetro
  • La muestra Hello-jni no funciona en Android Studio 2.0 Vista previa
  • Android Añadir soporte nativo - jni.h no resuelto, android / log.h etc
  • Extraño: no se puede cambiar el valor de Integer en jni
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.