1

我有一个Java类

class Book{
   String bookId;
   String bookName;
   public Book(String bookId, String bookName){
       this.bookId=bookId;
       this.bookName=bookName;
   }

}

我想在 JNI 中创建 Book 类的对象。

cid = (*env)->GetMethodID(env, bookClass, "<init>", "([Ljava/lang/String;Ljava/lang/String;)V");

但问题是找不到构造函数。如何解决?什么是正确的方法签名?

4

1 回答 1

1

你非常接近 - 在方法签名中,你的第一个参数被指定为一个数组,但在 Java 中它不是一个数组。删除第一个方括号。

cid = (*env)->GetMethodID(env, bookClass, "<init>", "(Ljava/lang/String;Ljava/lang/String;)V");

如果这不起作用,您应该确认它bookClass是有效的(不是NULL)。

于 2013-08-27T10:25:54.223 回答