我想在pthread函数中调用java方法。
但我遇到了:
JNI_ERROR: non-VM thread making JNI calls
我该怎么办?
答案 0 :(得分:2)
问题是您的线程没有连接(或没有正确)到VM。 当您通过JNI桥接器从Java到C ++进行调用时,您的调用正在处理的pthread将附加到vm。 在C ++中使用由JNI调用调用的线程至少可以说是易失性的。 您可能已经完成的工作是创建一个新线程并尝试通过它进行呼叫,而无需在拨打电话之前将其附加到VM。 我认为,要解决您的问题,您应该将您的线程附加到VM。
因此,如果您看到Android Tips and tricks,则会有关于该主题的部分 如果你去线程部分,你可以看到他们明确说出的部分:
在连接一个线程之前,它没有JNIEnv,也无法生成JNI 调用
您可以在提供的链接中找到解决问题的详细步骤。
发布您的进度......