Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查是否在";“关键的”;在Android上使用JNI部分_Java_Android_Android Ndk_Java Native Interface - Fatal编程技术网

Java 检查是否在";“关键的”;在Android上使用JNI部分

Java 检查是否在";“关键的”;在Android上使用JNI部分,java,android,android-ndk,java-native-interface,Java,Android,Android Ndk,Java Native Interface,在链接()中,它指出: “确保代码不会在对GetXXXCritical()和ReleaseXXXCritical()的调用之间出于任何原因进行任何JNI调用或阻塞。” 当我这样做时,我的日志中会出现以下错误 W/dalvikvm(19853):JNI警告:threadid=1在关键get之后使用JNI(新字节数组) 有没有办法确定我是否真的处于上述“关键”呼叫之间?我查阅了大量JNI文档,但似乎找不到一个函数可以说明这一点。关键区域通常非常小,因此在同一个函数中,您应该知道自己是否处于关键区域。

在链接()中,它指出:

“确保代码不会在对GetXXXCritical()和ReleaseXXXCritical()的调用之间出于任何原因进行任何JNI调用或阻塞。”

当我这样做时,我的日志中会出现以下错误

W/dalvikvm(19853):JNI警告:threadid=1在关键get之后使用JNI(新字节数组)


有没有办法确定我是否真的处于上述“关键”呼叫之间?我查阅了大量JNI文档,但似乎找不到一个函数可以说明这一点。

关键区域通常非常小,因此在同一个函数中,您应该知道自己是否处于关键区域。如果在关键区域内调用其他函数,例如,如果您在关键区域,您可以向它们传递
bool
参数,该参数为
true
(如果您不传递任何内容,则可以是默认参数,获取值
false
)。谢谢Michael。我实际上是在努力解决图书馆的一个问题。我使用的库显然是在关键部分调用我的代码。我不确定该库是否已经得到了维护,因此请某人修复库中的问题不是一个选项:(我不确定为什么JNI不提供类似“IsInCriticalSection”的函数)如果你在一个关键区域不能进行任何JNI调用,你怎么能调用这样的函数来检查你是否在关键区域?