如何使用"null"参数调用本机方法
How to call native method with 'null' parameter
我需要调用这样的本地方法:
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
指针接收。可以进行比较。
这次撞车事故可能与其他事情有关。插入一些诊断输出并进行调试。
相关文章:
- 多次调用本机方法时出现致命错误
- 将本机方法添加到 OpenJDK 源代码
- 如何将类对象传递给 jni 本机方法
- 如何传递InteropServices.ComTypes.IStream到接受IStream*的本机方法,使用c++/c
- 是在DEX文件方法计数中计数的本机C 方法
- 从java调用本机方法时使用Libc SIGSEGV
- 本机方法中的不满意的Linkerror
- Windows Service 无法调用 C++ 本机方法 [DllImpor( "myDLL" )]
- 参数通过本机方法
- 无法调用本机方法 Eclipse
- Java:调用本机方法,给出"线程"main"java.lang.UnsatisfiedLinkError中的异常"
- 如果未在本机方法中创建,何时清除本地引用
- java.lang.UnsatisfiedLinkError: 找不到本机方法: soundtouch.ST.setup
- 通过JNI调用System.loadLibrary()不会加载本机方法
- 使用C++时找不到本机方法
- JNI——可以将复杂类型作为本机方法参数传递
- 为什么 fopen 由于来自 Android-NDK 应用程序的权限问题而在本机方法中失败
- Java 端找不到我的本机方法
- 通过.NET中的指针从本机方法返回数据
- java.lang.UnsisfiedLinkError:未找到本机方法: