我正在尝试从一个本机函数返回QAndroidJniObject。使用QT5.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()方法或其他什么东西。
发布于 2015-10-29 11:27:28
通过创建一个新的局部参考解决了这个问题
return env->NewLocalRef(obj.object<jobject>());https://stackoverflow.com/questions/33412919
复制相似问题