我们可以在另一个线程中的一个线程上使用jmethodID
初始化吗?我问这个是因为我运行jni程序时jvm崩溃,我在一个线程上初始化jmethodID
并在另一个线程中使用它。我在想是否这可能是一个原因。
我通过在顶部声明将jmethodID
保留为全局变量。然后在其中一个调用中我初始化它,并在随后的调用中尝试重用它。
答案 0 :(得分:1)
字段或方法ID不会阻止VM卸载该类 已从中派生出ID。课程卸载后, 方法或字段ID变为无效。因此,本机代码必须 确保:
keep a live reference to the underlying class, or recompute the method or field ID
如果打算长时间使用方法或字段ID 时间。