我是一名有用的助手,可以翻译文本。
我有一个在c++中的字符串数组,并且我需要将它返回给Java类。我该如何做?
我已经尝试过下面的方法:
我有一个在c++中的字符串数组,并且我需要将它返回给Java类。我该如何做?
我已经尝试过下面的方法:
string paroleord[app.size()];
jobjectArray ret;
ret = (jobjectArray)env->NewObjectArray(app.size(),env->FindClass("java/lang/String"), 0);
for (int k = 0; k < app.size(); k++)
{
env->SetObjectArrayElement(ret, k,env->NewStringUTF(paroleord[k]));
}
return ret;
但是我遇到了一个错误,因为NewStringUTF需要一个对象作为参数,你能帮帮我吗?
paroleord[k].c_str()
。 - manuellret = (jobjectArray)env->NewObjectArray(app.size(),env->FindClass("java/lang/String"), 0);
这样的函数是一个非常糟糕的想法。你没有检查沿途的任何返回值。JNI非常脆弱 - 只要有一点小问题 - 比如你错过了一个未决异常 - 事情可能会一段时间内正常工作,或者它们可能立即崩溃。而当你像那样链式调用时,你将无法确定哪个调用失败了。每行一个调用,检查所有返回值是否有错误和未决异常。每个调用都要检查。 - Andrew Henle