gpt4 book ai didi

java - 如何从 native 函数返回 QAndroidJniObject?

转载 作者:太空宇宙 更新时间:2023-11-04 13:25:47 25 4
gpt4 key购买 nike

我正在尝试从 native 函数返回 QAndroidJniObject。使用 Qt 5.5 和 QtAndroidExtras。这是我的第一个天真的实现:

QAndroidJniObject doSomething() {
return QAndroidJniObject("android/os/Bundle", "()V");
}

static jobject nativeFunc(JNIEnv *env, jclass, jlong nativePointer, int, jstring, jstring, jstring)
{
QAndroidJniObject obj = doSomething();
return obj.object();
}

不幸的是,我遇到了一个错误:

I/dalvikvm(32413): JNI ERROR (app bug): accessed deleted global reference 0x1de00462

QAndroidJniObject被销毁时,底层的java对象也被销毁。似乎 QAndroidJniObject 没有 detach() 方法之类的东西。

最佳答案

通过创建一个新的 local reference 解决了这个问题:

return env->NewLocalRef(obj.object<jobject>());

关于java - 如何从 native 函数返回 QAndroidJniObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33412919/

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