我有数据类,其中包含 Java 方面的一些原始数据字段,并传递给 Cpp 端。我可以通过在Cpp端调用 getXXX()方法来获取值,但是我无法通过从Cpp端调用其 setXXX()方法来设置值。这没有编译错误,但只是没有更改值。
请注意,我使用 c ++ 。以下是在Java端调用setXXX()方法:
jmethodID methodSetF10lpcm = env->GetMethodID( mtfOutputClass, "setF10lpcm", "(F)V");
env->CallVoidMethod(mtfOutputClass, methodSetF10lpcm, 25.5f);
对于 setXXX()方法调用,有什么技巧我不知道吗?或者我是否必须使用 SetXXXField 来更改Java端的变量值?
修改
我发现了什么是错的。这是一个程序员错误。第一个参数不应该是jclass,应该是jobject。坏事是告诉你这个没有例外。它可能对静态方法有效。这是我的猜测。