我在java中创建了一个线程,它执行了一些处理,使用JNI将数据传递给传统C++。 C++代码在单独的线程上执行一些任务,然后返回,此时我想从JNI回调到Java线程,而不是主接口线程。该代码似乎构建并运行没有错误,但是当调用CallVoidMethod来调用回Java时,没有任何事情发生,没有任何异常或错误,它似乎调用Java代码。在非UI线程上对Java的JNI回调
我打电话给AttachCurrentThread似乎工作和分离在结束时,找到方法的调用似乎都成功。有没有人有任何想法或我有错误的想法?
在调用方法的开始处添加一条日志语句,以查看它是否被调用。确保在JNI代码中调用ExceptionCheck,以查看CallVoidMethod中的Java端是否失败。你说“什么事情都没有发生”,而且“似乎也调用了Java代码”,所以我不确定你看到了什么或者它是如何失败的。 – fadden
如果你粘贴代码,我们可以建议你 – Suman