Android如何使用ArrayList作为out参数从JNI调用java函数

时间:2016-05-27 08:16:12

标签: java-native-interface

我有像

这样的java函数
public void OnResult(int i, ArrayList<String> a_strList);

我想从JNI C ++调用此函数。

我添加了以下抛出异常的代码:

  

应用程序中的JNI检测错误:JNI NewGlobalRef调用挂起异常java.lang.NoSuchMethodError ..

     

mID = a_pEnv-&gt; GetMethodID(javaclass,&#34; OnResult&#34;,&#34;(ILjava / lang / ArrayList;)V&#34;);

请纠正我。

1 个答案:

答案 0 :(得分:0)

有点晚了,但可能会帮助别人:它应该是&#34;(ILjava / util / ArrayList;)V&#34;。

您可以使用&#34; javap -s myclass.class&#34;命令自动为您的方法获取正确的描述符(有关参数,请参阅docs)。