Кто-нибудь программирует с использованием Necessitas (Qt для Android)? - PullRequest
1 голос
/ 11 мая 2011

Я работаю с Necessitas (Qt для Android). Все отлично работает.

Теперь я пытаюсь подключиться к JVM Dalvik, чтобы использовать API Android (например, GPS). Для этого я пытаюсь получить среду Java с использованием JNI:

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.

Проблема в том, что я всегда получаю ошибку GetEnv при запуске приложения на виртуальном устройстве Android.

Любая помощь очень ценится!

1 Ответ

2 голосов
/ 13 мая 2011

Я отвечаю на вопрос:

Это происходит потому, что getEnv получает текущий env. Пока что мне нужно, чтобы получить новый env с чем-то вроде:

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