Int*_*idd 5 java java-native-interface android
我对 JNI 还很陌生,并且正在努力解决这个问题。
我有一个由网络库(alljoyn)调用的 C++ 回调。
在这个回调中,我需要调用Java代码。
由于此回调位于另一个线程中,因此我使用以下代码来获取 JNIEnv 指针:
(jvm是全局指针)
JNIEnv *env = NULL;
jvm->AttachCurrentThread(&env, NULL);
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试使用此 env 指针调用 FindClass 时,结果为 NULL。
如果我在主线程中执行完全相同的 FindClass 调用,则一切正常。
我怎样才能解决这个问题 ?这与类路径有某种关系吗?
答案和官方解决方法可以在developer.android上找到。如果您必须超越预缓存本机代码可能需要的所有类的全局引用,您将找到一个成功的解决方案,可以在此处缓存正确的类加载器:FindClass from any thread in Android JNI
| 归档时间: |
|
| 查看次数: |
3064 次 |
| 最近记录: |