android - jni数据传递 - JNI:在GetMethodID的函数签名中传递多个参数



jni指针参数 (1)

我试图执行Java(从C)中具有以下签名的函数:

public void execute(int x, int y, int action);

我的问题是在GetMethodID中定义函数签名:

env->GetMethodID(hostClass, "execute", "(I;I;I;)V");

我得到的问题是:

W/dalvikvm( 1849): Bogus method descriptor: (I;I;I;)V
W/dalvikvm( 1849): Bogus method descriptor: (I;I;I;)V
D/dalvikvm( 1849): GetMethodID: method not found: Lcom/device/client/HostConnection;.execute:(I;I;I;)V

我不知道如何在GetMethodID(3个整数作为参数)中指定方法签名。 我看到有人用“;” 在String和File类的其他帖子中分开参数,但是没有像integer这样的基元。

请问这样做的正确方法是什么?

谢谢。


根据这个文件,你应该使用(III)V签名。 只有当你需要指定完全限定的类时,你应该使用';',比如Ljava/lang/String;