Frage

Wie wird der Zustand beim Zugriff auf Methoden über JNI aufbewahrt? In dem folgenden Beispiel wird mein Java -Code die native Methode -Zeichnung aufgerufen, wird meine native Klasse _nc zwischen Anrufen bestehen?

Wenn es bessere native Debugging -Tools für das NDK gäbe, wäre dies ziemlich leicht zu finden, aber ich habe wirklich Probleme mit dem NDK und 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();
}
War es hilfreich?

Lösung

Die Implementierung von JNI -Funktionen folgt den Scoping -Regeln für die Sprache, in der Sie implementieren. Wenn Sie _NC als globale Variable deklarieren (wie Sie in Ihrem Beispiel getan haben), wird sie während der gesamten Anwendung freigegeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top