方法的jni签名

And*_*Dev 0 c++ java java-native-interface

我的java方法包含一个函数

 public static void downLoadProfileImage(String url, String fileName,  int tag, int from)
Run Code Online (Sandbox Code Playgroud)

我收到JNI签名错误:

if (JniHelper::getStaticMethodInfo(jniMethodInfo, packageName.c_str(), "downLoadProfileImage", "(Ljava/lang/String;Ljava/lang/String;I;I;)V")) 
Run Code Online (Sandbox Code Playgroud)

如果我只保留两个字符串,一切正常.但是有两个整数会引发错误?我究竟做错了什么?

Fre*_*rik 6

两个整数标记(I)不应具有以下分号.尝试:

(Ljava/lang/String;Ljava/lang/String;II)V
Run Code Online (Sandbox Code Playgroud)

编辑:最好的工作方式可能是使用"javap -s"让java为你打印签名.另外,请务必阅读并理解此页面

  • ; 是一个结束标记,仅与 L 一起使用来标记类名的结束。 (3认同)