JNI档案:
jObj = lJNIEnv->NewObjectArray(2,lJNIEnv->FindClass("java/lang/String"),0);
jmethodID APIHttp = lJNIEnv->GetMethodID(lClassDeviceAPI, "PassData","(Ljava/lang/Object;)I");
if(APIHttp == NULL) {
LOGI("CallMethod:: method found");
}
sent=lJNIEnv->CallIntMethod(appc->lObjDeviceAPI,jObj);Java :
public int PassData(Object object) {
...
..
}
Logs: "CallMethod:: method found"当我们从JNI => Java传递对象时,有人知道对象参数需要传递什么吗?
异常:
JNI DETECTED ERROR IN APPLICATION: JNI CallIntMethodV called with pending exception 'java.lang.NoSuchMethodError' thrown in unknown throw location发布于 2018-10-04 12:57:25
如jni.h所示,CallIntMethod具有此签名(其余参数使用varargs ):
jint CallIntMethod(jobject obj, jmethodID methodID, ...)因此,方法ID是第二个参数,数组在varargs列表中。我假设appc->lObjDeviceAPI是类实例的lObjDeviceAPI。
sent = lJNIEnv->CallIntMethod(appc->lObjDeviceAPI, APIHttp, jObj);https://stackoverflow.com/questions/37482105
复制相似问题