[英]Parameters send from Java to JNI are not being sent
我已经阅读了有关如何将参数从Java发送到JNI函数的信息。 我第一次尝试发送ArrayList,因为我试图获取Android电话簿。
经过很多问题后,我变得很简单,可以完全确定要发送的是简单参数(字符串)。
这是我对该函数的Java声明:
public static native void nativeCallback(String params);
这是JNI函数:
JNIEXPORT void JNICALL
Java_example_nativeCallback(JNIEnv* env,jstring params)
我检查并正在调用该函数。 我用它来查看是否实际上正在发送一个字符串:
int sizeOfChain = env->GetStringLenght(params);
std::ostringstream convert;
convert<<sizeOfChain;
convert.flush();
std::string finalString = convert.str();
打印finalString时为0。
这是从Java调用函数的方式:
nativeCallback("TEST_STRING");
另外,发送ArrayList作为jobjectArray有效吗?
尝试执行此操作以从jstring获取C字符串
const char *str= env->GetStringUTFChars(params, NULL);
printf("String: %s\n", str);
env->ReleaseStringUTFChars(params, str);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.