2011-05-11 49 views
1

我正在使用Necessitas(Qt for Android)。一切運行良好。任何使用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失敗。

任何幫助非常感謝!

+0

我想要做同樣的工作,就像你(GPS),但我對於新手,你可以分享你使用JNI的方式?謝謝.. – 2013-03-30 03:53:36

回答

2

我在回答我的問題:

發生這種情況是因爲getEnv獲取當前env。而我需要得到一個新的ENV的東西,如:

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