首页 > 解决方案 > 通过JNI向Java方法传递参数

问题描述

在Java中,在调用类中,有一个方法

public void test(int i)
{...

我想从 C++ 方法调用,所以我尝试了

jobject obj = env->AllocObject(cls);
jmethodID testID = env->GetMethodID(cls, "test", "(I)V");
if (testID)
{
    const jint val = 15;
    env->CallVoidMethod(obj, testID, val);
}

如果 test 不带参数并且 GetMethodID 中的签名是“()V”,这可以正常工作,但是对于 int(或任何其他类型),它会生成一个 PID 日志文件,抱怨 GetMethodID 中的内部 NoSuchMethodException。

我在这里想念什么?

谢谢

PS我放弃了,但不知道如何将问题标记为已关闭。

标签: javac++java-native-interface

解决方案


推荐阅读