JNI调用java setXXX()方法与getXXX()方法不一样?

时间:2013-04-30 22:24:14

标签: java c++ java-native-interface

我有数据类,其中包含 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。坏事是告诉你这个没有例外。它可能对静态方法有效。这是我的猜测。

0 个答案:

没有答案