Estoy tratando de ejecutar una función en Java (de C) que tiene la siguiente firma:JNI: Paso de múltiples parámetros en la firma de la función de GetMethodID
public void execute(int x, int y, int action);
Mi problema es definir la firma de función en GetMethodID :
env->GetMethodID(hostClass, "execute", "(I;I;I;)V");
El problema es conseguir I m:
W/dalvikvm(1849): Bogus method descriptor: (I;I;I;)V
W/dalvikvm(1849): Bogus method descriptor: (I;I;I;)V
D/dalvikvm(1849): GetMethodID: method not found: Lcom/device/client/HostConnection;.execute:(I;I;I;)V
no estoy seguro de ho w para especificar la firma del método en GetMethodID (para 3 enteros como parámetros). Vi a personas usar el ";" para separar los parámetros en otras publicaciones para la clase String y File, pero nada con primitivos como entero.
¿Cuál sería la forma correcta de hacerlo, por favor?
Gracias.
¡Muchas gracias! Me ayudaste a resolver mi problema, ¡gracias! – Jary
Ese es un enlace muy útil para resolver todo tipo de problemas de JNI, ¡gracias! –
If es público void execute (String x, int y); ? (Ljava/lang/String; I) V? Error ... – zszen