如何使用 2 个字符串参数从 jni java 库调用
How to call from jni java library with 2 string parameters?
我是这样试的:
void CallbackStringFromJni(const char *name, const char *type)
{
jboolean isAttached;
JNIEnv *env;
jmethodID mid;
jstring js, js2;
LOGE("callbackStringFromJni Begin");
env = getJniEnv(&isAttached);
if (env == NULL)
goto FAIL0;
mid = getApplicationJniMethodId(env, applicationJniObj, "callbackStringFromJni", "(SS)V");
if (mid == NULL)
goto FAIL1;
js = (*env)->NewStringUTF(env, name);
js2 = (*env)->NewStringUTF(env, type);
(*env)->CallVoidMethod(env, applicationJniObj, mid, js, js2);
if (isAttached)
{
(*global_vm)->DetachCurrentThread(global_vm);
}
LOGE("callbackStringFromJni End");
return;
FAIL1:
if (isAttached)
{
(*global_vm)->DetachCurrentThread(global_vm);
}
FAIL0:
LOGE("callbackStringFromJni FAILED");
return;
}
但我得到这个:
01-26 11:53:02.500: E/VidyoMobile app/src/main/jni/ndkVidyoSample.c(31091): getApplicationJniMethodId - getApplicationJniMethodId: Failed to get callbackStringFromJni method
01-26 11:53:02.603: E/AndroidRuntime(31091): java.lang.NoSuchMethodError: no non-static method "Lcom/vidyo/vidyocore/VidyoCoreApplication;.callbackStringFromJni(SS)V"
我在 java 中的方法如下所示:
public void callbackStringFromJni(String name, String typeS) {
Log.e("","callbackStringFromJni name: " + name + ".. type: " + typeS);
}
它必须是这样的:
mid = getApplicationJniMethodId(env, applicationJniObj, "callbackStringFromJni", "(Ljava/lang/String;Ljava/lang/String;)V");
不
"(SS)V"
相关文章:
- 用C++包装 Java 库 (JNI)
- 如何通过 JNI 将 C 字符串表情符号传递给 Java
- JNI Java包装:如何传递byte[]参数
- Android JNI:Java通过JNI调用C++类对象
- 如何将 gnu-libstdc++ 包含在 JNI Java swing 项目中
- 如何使用 2 个字符串参数从 jni java 库调用
- JNI Java对象实例化期间的Segfault
- jni java.lang.unsatisfiedlinkerror,无法链接方法
- Error with JNI (Java and C++)
- JNI - Java 在本机线程完成执行之前退出
- c++ 插件 -> JNI --> Java 类路径
- Android JNI : java.lang.UnsatisfiedLinkError
- Jni java 启动器在 c 中工作,但在 c++ 中不起作用
- JNI : java.lang.UnsatisfiedLinkError error
- 安卓系统:JNI Java From C内存泄漏
- 当从c++调用JNI Java方法时,它会被丢弃
- JNI(Java)等效于INCREF,DECREF用于C++的python嵌入
- DLL using JNI Java classes
- JNI(Java 和 C++)在 Ubuntu 11.10 上使用 Eclipse
- JNI java.lang.UnsatisfiedLinkError: ****.***()Z