我想在pthread函數中調用java方法。如何從pthread(C)在Android NDK中調用回調(JAVA)
但我面對:
JNI_ERROR: non-VM thread making JNI calls
我該怎麼辦?
我想在pthread函數中調用java方法。如何從pthread(C)在Android NDK中調用回調(JAVA)
但我面對:
JNI_ERROR: non-VM thread making JNI calls
我該怎麼辦?
問題是您的線程未附加(或不正確)到虛擬機。 當您通過JNI橋從Java調用C++時,您的調用正在工作的pthread被附加到vm。 通過JNI調用C++中的線程可以說是不穩定的。 你可能做了什麼就是創建一個新線程,並嘗試在撥打電話之前從它撥打電話,而無需將其附加到VM。 我認爲要解決您的問題,您應該將您的線程附加到虛擬機。
所以,如果你看到Android Tips and tricks有關於這個問題 一節。如果你去螺紋部分,你可以看到部分,他們清楚地說:
直到螺紋連接,它有沒有JNIEnv,並且不能使JNI 調用。
您可以在提供的鏈接中找到解決問題的詳細步驟。
發佈你的進步...
謝謝,我打算去做。併發布我的進度。 – Joel 2012-07-18 01:19:01
這也許可以幫助:https://groups.google.com/forum/?fromgroups#!topic/android-ndk/FfQlfrKwwtw – 0gravity 2012-07-17 04:16:39
謝謝,但我認爲該鏈接ISN」我想要什麼。 – Joel 2012-07-17 04:43:08