java - Jni jintArray 参数错误

标签 java android arrays java-native-interface

Java:

public int[] native getArray(int[] a);


c:

JNIEXPORT jintArray JNICALL 

 net_tq5_ArrayTest_getArray(JNIEnv *env, jobject obj, jintArray arr) {
return arr;
}

Java:

int[] a = new int[]{1,2,3,4,5};
int[] b = getArray(a);
for(int i=0; i<a.lenght; i++){
   Log.i("ArrayTest: ", "" + b[i]);
}

结果将是:

 ArrayTest: 0
 ArrayTest: 0
 ArrayTest: 0
 ...

为什么? 帮助!

最佳答案

您的函数的 c header 不正确。现在它返回 jint 而不是 jintArray。尝试重新生成 header 并重建库。

关于java - Jni jintArray 参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4645639/

相关文章:

java - IntStream.sum() 异常处理

java - 如何更改或使用创建对象的类中的变量?

java - 在模块 auto-value-1.2.jar 中找到重复的类 com.google.auto.value.AutoAnnotation

python - 矢量化的局限性是什么?

php - 使用 foreach 进行复杂的多维关联数组处理

javascript - 使用 ramda 遍历对象数组

Java JDBC - Oracle11g Sys Ref Cursor 与 pl/sql 集合

java - "setDataSource failed"异常

java - Fragment.java 错误 :(94, 51) 错误:不兼容的类型:NewsFragment 无法转换为 Context

android - libgdx vector3 转换错误