Hi
I am callin java method from C function using JNI.
I want to return string or array of strings from java method.
However program is crashing at run time.
Code for returning array of strings is as below:
Java code:
public class Cello
{
public static String[] abc(String[] args)
{
String[] strRetOP = new String[2];
System.out.println("Hello JAVA .... !");
strRetOP[0]="SUCCESS";
return strRetOP;
}
public static void main (String[] args)
{
}
}
C code snippet:
jobjectArray args2 , args5OP ;
jstring jstr2[NUM], jstr3, jstr5OP;
:
id2_main = (*env)->GetStaticMethodID(env, stringClass2,"abc", "(Ljava/lang/String;)Ljava/lang/String");
:
jstr3 = (*env)->FindClass(env, "java/lang/String");
:
args2 = (*env)->NewObjectArray(env, NUM, jstr3, jstr2[0] );
:
jstr5OP = (*env)->FindClass(env, "java/lang/String");
args5OP = (*env)->NewObjectArray(env, NUM2, jstr5OP, jstr2[0] );
for(i=1;i<NUM2;i++)
(*env)->SetObjectArrayElement(env, args5OP, i, jstr2);
jstr5OP = (*env)->CallStaticObjectMethod(env, stringClass2, id2_main, args2);
:
I could execute program successfully with java returning integer and C function calling id2_main = (*env)->GetStaticMethodID(env, stringClass2,"abc", "([Ljava/lang/String;)I"); and CallStaticIntMethod.
However program is crashing when java method is changed to return array of Strings instead of int.
Can anybody please help?