I tried like this:
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;
}
But I get this back:
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"
My method in java looks like:
public void callbackStringFromJni(String name, String typeS) {
Log.e("","callbackStringFromJni name: " + name + ".. type: " + typeS);
}
It has to be like this:
mid = getApplicationJniMethodId(env, applicationJniObj, "callbackStringFromJni", "(Ljava/lang/String;Ljava/lang/String;)V");
not
"(SS)V"