gpt4 book ai didi

android - 在 JNI 方法上返回一个字符串数组

转载 作者:IT老高 更新时间:2023-10-28 23:20:47 26 4
gpt4 key购买 nike

我需要从 C++ 中获取字符串列表 (char*) 并将其返回给 Java。

我该怎么做?

我认为一种解决方案是返回一个预定义的大字符串,例如:“[item1][item2]”,然后在 Java 上进行拆分,但这看起来不是正确的方法。

最佳答案

在 JNI 文档中查看 NewObjectArray

基本上,您可以从 JNI 函数返回一个字符串数组 (Java),然后将其转换为 List 或任何类型的 Collection 类型。

伪代码:

Java:

....
public List<String> getFooAsList(){
return new ArrayList(this.getData());
}
private native String[] getData();

JNI

#include <jni.h>


JNIEXPORT jobjectArray JNICALL
como_foo_bar_getData
(JNIEnv *env, jobject jobj){

jobjectArray ret;
int i;

char *data[5]= {"A", "B", "C", "D", "E"};

ret= (jobjectArray)env->NewObjectArray(5,env->FindClass("java/lang/String"),env->NewStringUTF(""));

for(i=0;i<5;i++) env->SetObjectArrayElement(ret,i,env->NewStringUTF(data[i]));

return(ret);
}

未测试!!!

让我知道它是否适合你

问候

关于android - 在 JNI 方法上返回一个字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com