JNI: NoSuchFieldError

Salida de: javap -s SomeClass

public org.someapp.SomeClass$_data data;
  Signature: Lorg/someapp/SomeClass$_data;

Definición de SomeClass en Java:

class SomeClass
{
    private class _data {
        byte[] something = new byte[1234];
    }

    public _data data;
}

Definición de función nativa en Java:

public static native int NativeFunction(SomeClass something);

Implementación de Java:

SomeClass x = new SomeClass();
NativeInterface.NativeFunction(x);

Sin embargo, cuando se ejecuta el siguiente código:

JNIEXPORT jint JNICALL Java_org_someapp_NativeInterface_NativeFunction(JNIEnv* env, jobject obj, jobject someobject) {
    jclass some_class = (*env)->GetObjectClass(env, someobject);
    jfieldID data = (*env)->GetFieldID(env, some_class, "data", "Lorg/someapp/SomeClass$_data"); 
}

Java lanza una excepción "NoSuchFieldError ;: data" en la llamada a GetFieldID. No lo entiendo. La firma está bien (copiada directamente de javap).

Tenga en cuenta que obtener el ID de campo para una variable más simple, como un corto sin firma (con la firma "S") funciona bien.

Respuestas a la pregunta(1)

Su respuesta a la pregunta