JNI-Typ-Aliases für die Lyx–Java-Interaktion: JNIEnv, JavaVM, jobject, jstring, jint und weitere Primitive. Ermöglicht das Aufrufen von Java-Methoden aus nativem Lyx-Code und umgekehrt.
| Lyx-Alias | JNI-Original | Beschreibung |
|---|---|---|
JNIEnv | JNIEnv* | Zeiger auf JNI-Funktionstabelle (je Thread) |
JavaVM | JavaVM* | Globale JVM-Instanz |
jobject | jobject | Generisches Java-Objekt |
jclass | jclass | Java-Klassen-Referenz |
jstring | jstring | Java-String-Objekt |
jbyteArray | jbyteArray | Java-byte[]-Array |
jint | jint | 32-Bit-Integer (Java int) |
jlong | jlong | 64-Bit-Integer (Java long) |
jboolean | jboolean | Java boolean |
jfloat | jfloat | Java float |
jmethodID | jmethodID | Handle auf eine Java-Methode |
jfieldID | jfieldID | Handle auf ein Java-Feld |
import std.android.jni;
// Java-Methode aufrufen (vereinfachtes Beispiel)
fn CallJavaToast(env: JNIEnv, activity: jobject, msg: pchar): void {
var cls: jclass := JniGetObjectClass(env, activity);
var mid: jmethodID := JniGetMethodID(env, cls, "showToast", "(Ljava/lang/String;)V");
var jmsg: jstring := JniNewStringUTF(env, msg);
JniCallVoidMethod(env, activity, mid, jmsg);
JniDeleteLocalRef(env, jmsg);
}
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
JniGetObjectClass(env: JNIEnv, obj: jobject): jclass | pub | Gibt Klasse eines Objekts zurück |
JniGetMethodID(env: JNIEnv, cls: jclass, name: pchar, sig: pchar): jmethodID | pub | Sucht Methoden-ID nach Name und Signatur |
JniCallVoidMethod(env: JNIEnv, obj: jobject, mid: jmethodID, …): void | pub | Ruft void-Methode auf |
JniCallIntMethod(env: JNIEnv, obj: jobject, mid: jmethodID, …): jint | pub | Ruft int-rückgebende Methode auf |
JniNewStringUTF(env: JNIEnv, s: pchar): jstring | pub | Erzeugt Java-String aus UTF-8-Zeiger |
JniGetStringUTFChars(env: JNIEnv, s: jstring): pchar | pub | Gibt UTF-8-Zeiger auf Java-String zurück |
JniDeleteLocalRef(env: JNIEnv, ref: jobject): void | pub | Gibt lokale JNI-Referenz frei |
Letzte Aktualisierung: 2026-05-22