1

私は 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_javaVMNecessitas が使用する仮想マシンへのポインタです。

問題は、Android 仮想デバイスでアプリケーションを実行すると、常に GetEnv が失敗することです。

どんな助けでも大歓迎です!

4

1 に答える 1

2

私は私の質問に答えています:

これは、getEnv が現在の環境を取得するために発生します。次のような新しいenvを取得するために必要なことは次のとおりです。

if (currVM->AttachCurrentThread((void **)&currEnv, NULL)<0)
        {
            emit error("Cannot attach the current thread to the VM");
        }
于 2011-05-13T13:34:03.170 に答える