有人使用Necessitas编程(Qt for Android)?

时间:2011-05-11 09:42:48

标签: android qt dalvik

我正在使用Necessitas(Qt for Android)。一切顺利。

现在,我正在尝试连接到Dalvik JVM以使用一些Android API(例如GPS)。为此,我试图使用JNI获取Java环境:

JNIEnv *currEnv;
currEnv = 0;
if (m_javaVM->GetEnv((void**)&currEnv,JNI_VERSION_1_4) == JNI_OK)
{
    qDebug() << "GetEnv passed";
}
else
{
    qDebug() << "GetEnv failed";
}

m_javaVM是指向Necessitas使用的虚拟机的指针。

问题是当我在android虚拟设备中运行应用程序时,总是让GetEnv失败。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

我正在回答我的问题:

这是因为getEnv获取当前的env。虽然我需要获得一个新的环境,如:

if (currVM->AttachCurrentThread((void **)&currEnv, NULL)<0)
        {
            emit error("Cannot attach the current thread to the VM");
        }