Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to invoke Java API with ArrayList object from JNI

I am trying to call a Java API that accepts ArraList of Strings from JNI

/*My Java Method that needs to be called from JNI*/

public void postArrayListOfStringsToJavaFromJNI(ArrayList<String> list)
{
}

//I am trying to create the methodId like below in JNI to call my Java API postArrayListOfStringsToJavaFromJNI

jmethodID method_id = env->GetMethodID(dmrcallbacks, "postArrayListOfStringsToJavaFromJNI", "(Ljava/lang/Object;)V");

But I am getting an error

11-22 23:22:45.130: E/AndroidRuntime(19189): java.lang.NoSuchMethodError: no method with name='postArrayListOfStringsToJavaFromJNI' signature='(Ljava/lang/Object;)V' in class Lcom/example/JavaSample;

Is there any problem with the GetMethodID call that is having "(Ljava/lang/Object;)V" as first parameter for calling the Java API with parameter "ArrayList"

like image 266
Madan Kanth Lanka Avatar asked May 23 '26 18:05

Madan Kanth Lanka


1 Answers

(Ljava/lang/Object;)V is the signature of a void method taking a single parameter of type java.lang.Object, you presumably need (Ljava/util/ArrayList;)V instead.

like image 96
Ian Roberts Avatar answered May 26 '26 07:05

Ian Roberts