我刚接触 C++ 和 JNI
流程应该是这样的
我从 Java 向 JNI 传递一个空List值,JNIloadData(std::vector<int>)从中调用方法MyClass,此方法用数据填充我的列表。
所以,问题是
我有
class MyClass {
public:
MyClass();
~MyClass();
void loadData(std::vector<int> & vector);
};
void MyClass::loadData(std::vector<int> & vector)
{
const int size = 10;
vector.resize(size);
for (int i = 0; i < size; ++i) {
vector.push_back(4);
}
}
这是我用纯 C++ 编写的方法,现在我需要像这样从 Java 使用它
public native void fillListWithData(List<Integer> list);
所以,我在 JNI 中写了这样的方法来关联它们
extern "C" JNIEXPORT void JNICALL
Java_com_google_ar_core_examples_java
_helloar_HelloArActivity_fillListWithData(
JNIEnv *env,
jobject /* this */,
jobject input
) {
myClass->loadData("HERE I NEED TO PASS MY " input);
}
在这里我应该如何调用这个方法
public void TEST(){
List<Integer> list = new ArrayList<>();
fillListWithData(list);
Log.e("TAG", "HERE I NEED TO HAVE A LIST WITH FILLED DATA");
}
我不明白如何通过 JNI 将此列表通过引用传递给 C++...
任何想法赞赏
幕布斯6054654
繁花如伊
相关分类