如何使用"null"参数调用本机方法

How to call native method with 'null' parameter

本文关键字:本机 方法 调用 null 何使用 参数      更新时间:2023-10-16

我需要调用这样的本地方法:

java代码:

private native Object SendFiles(String strEmail, DeviceInfo info, String [] arrFiles, int cntFiles, ID idRequest);

调用SendFiles();

SendFiles(strEmail, null, arrFiles, cntFiles, requestID);

和c++代码:

jobject Java_com_xxxxx_xxxxx_controller_CoreController_SendFiles(JNIEnv *pEnv, jobject obj, jstring strEmail, jobject jinfo, jobjectArray jarrFiles, jint cntFiles, jobject jidRequest){
         .........
          if(jinfo == NULL)       // here crashes !!!!!!!
             doSomething();
         ............
}

Java"null"是否可以发送到c"null"?

我该怎么做?

您可以阅读c++NULL对多个帖子的检查,例如在c++中检查null对象或检查它是否为null或我们如何检查指针是否为null指针?

然而,这篇文章似乎给出了最直接的方法:返回一个";NULL";对象,如果搜索结果未找到

jobject是C++端的指针数据类型。当您从Java传递null对象时,C++会将其作为NULL指针接收。可以进行比较。

这次撞车事故可能与其他事情有关。插入一些诊断输出并进行调试。