我在java中創建了一個線程,它執行了一些處理,使用JNI將數據傳遞給傳統C++。 C++代碼在單獨的線程上執行一些任務,然後返回,此時我想從JNI回調到Java線程,而不是主接口線程。該代碼似乎構建並運行沒有錯誤,但是當調用CallVoidMethod來調用回Java時,沒有任何事情發生,沒有任何異常或錯誤,它似乎調用Java代碼。在非UI線程上對Java的JNI回調
我打電話給AttachCurrentThread似乎工作和分離在結束時,找到方法的調用似乎都成功。有沒有人有任何想法或我有錯誤的想法?
在調用方法的開始處添加一條日誌語句,以查看它是否被調用。確保在JNI代碼中調用ExceptionCheck,以查看CallVoidMethod中的Java端是否失敗。你說「什麼事情都沒有發生」,而且「似乎也調用了Java代碼」,所以我不確定你看到了什麼或者它是如何失敗的。 – fadden
如果你粘貼代碼,我們可以建議你 – Suman