jclass class= env->FindClass("java/util/ArrayList");
listClass = (jclass)env->NewGlobalRef(class);
listAddAllID = env->GetMethodID(listClass, "addAll", "(Ljava/lang/Object;)Z");
对于上面的代码“ java.lang.NoSuchMethodError:addAll”,我得到以下异常。我使用“ lang / object”作为参数,使用“ z”作为返回类型boolean。这似乎完全正确。我在这里缺少什么?
公共布尔addAll(Collection c)
最佳答案
您始终可以使用javap
获取方法的正确描述符
> javap -s java.util.ArrayList | grep -A +1 addAll
public boolean addAll(java.util.Collection<? extends E>);
descriptor: (Ljava/util/Collection;)Z
--
public boolean addAll(int, java.util.Collection<? extends E>);
descriptor: (ILjava/util/Collection;)Z
因此,您需要将其更改为其中之一(取决于您要拨打的电话)。
玩JNI!