我正在尝试从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类的其他文章中分隔参数,但对于整型之类的原语则没有任何意义。
请问这样做的正确方法是什么?
谢谢你。
最佳答案
根据此file,您应该使用(III)V
签名。仅在需要指定时
完全合格的类,您应该使用';',例如Ljava/lang/String;
。