我目前正在尝试使用从我们的本机代码调用的Java记录器调试我们遇到的问题。
/* convert C to Java String */
java_string = (*env)->NewStringUTF(env, string);
/* call log method on logger instance */
(*env)->CallVoidMethod(env, logger, log_method_id, java_string);
查看Java代码我可以看到,如果java_string错误地为null,这可能会导致我们出现问题。我想暂时破解上面的代码来返回一个Java null来比较我们在字段中看到的结果失败。如何使java_string成为Java null?
我尝试过以下方法: -
/* convert C to Java String */
java_string = NULL;
/* call log method on logger instance */
(*env)->CallVoidMethod(env, logger, log_method_id, java_string);
但这似乎导致字符串“null”被发送到Java方法。
为了清楚起见,我无意故意将null传递给这个方法,我只想测试结果NullPointerException会发生什么,因为我们从C调用Java代码。