gpt4 book ai didi

java - JNI : Unable to find java class from native method in a callback

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:01 26 4
gpt4 key购买 nike

我是 JNI 的新手,我正在努力解决这个问题。

我有一个由网络库 (alljoyn) 调用的 c++ 回调。

在这个回调中,我需要调用Java代码。

由于这个回调在另一个线程中,我使用以下代码获取 JNIEnv 指针:

(jvm 是一个全局指针)

JNIEnv *env = NULL;  
jvm->AttachCurrentThread(&env, NULL);

问题是,当我尝试使用此 env 指针调用 FindClass 时,结果为 NULL。

如果我在主线程中执行完全相同的 FindClass 调用,一切正常。

我该如何解决这个问题?这与类路径有某种关系吗?

最佳答案

可以在 developer.android 上找到答案和官方解决方法.如果您必须超越为您的 native 代码可能需要的所有类预缓存全局引用,您将在此处找到一个成功的解决方案来缓存正确的类加载器:FindClass from any thread in Android JNI

关于java - JNI : Unable to find java class from native method in a callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17501948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com