JNI调用具有数组参数的Java方法

3

我正在尝试从cpp中调用一个java方法。对于使用字符串、整型等类型,我似乎没有问题。但是我遇到的问题是如何传递一个int数组参数。请问有人能告诉我我做错了什么吗?如果这只是一个非常小的错误而我完全忽略了它,请原谅。

JNIEXPORT void JNICALL
Java_basket_menu_MenusActivity_submitInfo(JNIEnv *, jclass){
    int placement[2] = { 5, 4 };

    jclass cls = env->FindClass("basket/menu/MenusActivity");
    jmethodID mid2 = env->GetStaticMethodID(cls, "PlaceMe", "([I)V");
    env->CallStaticVoidMethod(cls, mid2, placement); 
}
1个回答

5
您需要创建一个 jintArray 并将 placement 的内容复制到它中:
    jintArray arr = env->NewIntArray(2);
    env->SetIntArrayRegion(arr, 0, 2, placement);
    env->CallStaticVoidMethod(cls, mid2, arr); 

请参考文档,了解有关这些函数的更多信息。


谢谢你,Michael。 - Liquified Modding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接