Domanda

Come è stato mantenuto durante l'accesso ai metodi attraverso JNI? Nell'esempio che segue il mio codice Java sta chiamando il metodo drawFromJni nativo, sarà la mia classe nativa _NC essere mantenuta tra le chiamate?

Se non ci fossero migliori strumenti di debug nativo per l'NDK questo sarebbe abbastanza facile da scoprire, ma sto davvero avendo problemi con l'NDK e C ++.

extern "C" {
 JNIEXPORT void JNICALL Java_com_jnitest_SurfaceRenderer_drawFromJni(JNIEnv * env, jobject obj);
};

myNativeClass _nc;
JNIEXPORT void JNICALL Java_com_jnitest_SurfaceRenderer_drawFromJni(JNIEnv *  env)
{
     _nc.draw();
}
È stato utile?

Soluzione

L'implementazione di funzioni JNI segue le regole di visibilità per la lingua che si sta implementando in. Se si dichiara _NC come una variabile globale (come hai fatto nel tuo esempio), che sarà condiviso in tutta l'applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top