首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JNI对象从JNI传递到Java对象参数

JNI对象从JNI传递到Java对象参数
EN

Stack Overflow用户
提问于 2016-05-27 11:16:04
回答 1查看 801关注 0票数 0

JNI档案:

代码语言:javascript
复制
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 :

代码语言:javascript
复制
public int PassData(Object object) {
... 
..

}


Logs: "CallMethod::   method found"

当我们从JNI => Java传递对象时,有人知道对象参数需要传递什么吗?

异常:

代码语言:javascript
复制
  JNI DETECTED ERROR IN APPLICATION: JNI CallIntMethodV called with pending exception 'java.lang.NoSuchMethodError' thrown in unknown throw location
EN

回答 1

Stack Overflow用户

发布于 2018-10-04 12:57:25

如jni.h所示,CallIntMethod具有此签名(其余参数使用varargs ):

代码语言:javascript
复制
jint CallIntMethod(jobject obj, jmethodID methodID, ...)

因此,方法ID是第二个参数,数组在varargs列表中。我假设appc->lObjDeviceAPI是类实例的lObjDeviceAPI。

代码语言:javascript
复制
sent = lJNIEnv->CallIntMethod(appc->lObjDeviceAPI, APIHttp, jObj);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37482105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档