Я пытался реализовать простой код передачи объекта, но компилятор допустил ошибку.
Ошибка
Исключение в потоке "main" java.lang.NoSuchFieldError: считать в
objectpassing.ObjectPassing.changeCount (собственный метод)
Вот мой код Java
public class ObjectPassing {
static{
System.load("out.dll");
}
int count=10;
String message="hi";
public static void main(String[] args)
{
ObjectPassing ob=new ObjectPassing();
ObjectPassing.changeCount();
System.out.println("Number in java"+ob.count);
System.out.println(ob.message);
}
private static native void changeCount();
}
Мой код C:
#include <stdio.h>
#include <stdlib.h>
#include <jni.h>
#include "jnivg.h"
JNIEXPORT void JNICALL Java_objectpassing_ObjectPassing_changeCount
(JNIEnv *env, jclass o)
{
jclass tc=(*env)->GetObjectClass(env,o);
jfieldID fid=(*env)->GetFieldID(env,tc,"count","I");
jint n=(*env)->GetIntField(env,o,fid);
printf("Number in c= %d",n);
n=200;
(*env)->SetIntField(env,o,fid,n);
}