繁体   English   中英

从Java发送到JNI的参数未发送

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM