我对 JNI 还很陌生,并且正在努力解决这个问题。
我有一个由网络库(alljoyn)调用的 C++ 回调。
在这个回调中,我需要调用Java代码。
由于此回调位于另一个线程中,因此我使用以下代码来获取 JNIEnv 指针:
(jvm是全局指针)
JNIEnv *env = NULL;
jvm->AttachCurrentThread(&env, NULL);
问题是,当我尝试使用此 env 指针调用 FindClass 时,结果为 NULL。
如果我在主线程中执行完全相同的 FindClass 调用,则一切正常。
我怎样才能解决这个问题 ?这与类路径有某种关系吗?
答案和官方解决方法可以在开发者.android。如果您必须超越预缓存本机代码可能需要的所有类的全局引用,您将找到一个成功的解决方案,可以在此处缓存正确的类加载器:从 Android JNI 中的任何线程 FindClass
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)