我想使用 JNI (Java Native Interface) 来调用特定的 java setter 方法,将一个 short[] 缓冲区作为参数传递给它。
Java 方法实现如下所示:
public void setPcmLeft(short[] data) { pcm_l = data; }
从我的 C 函数内部,如何使用 JNI 调用此方法。
我的代码目前如下所示:
void Java_com_companyName_lame_LameActivity_lameDecode(JNIEnv *env, jobject jobj)
{
jclass class = (*env)->GetObjectClass(env, jobj);
if (class != NULL) {
jmethodID setLeftDatatID = (*env)->GetMethodID(env, class, "<setPcmLeft>", "void(V)");
if (setLeftDatatID == NULL) {
LOGD("(Lame) No method setLeftData");
}
}
}
当我运行它时,它setLeftDataID
是 allays NULL
。
请注意,jobj
参数是我传入的包含setPcmLeft
实现的对象。