首页 > 解决方案 > 尝试访问 JNI 中的数组值时的 SIGABRT

问题描述

我目前正在尝试将 ac 库集成到我的 android 项目中。extern 函数接受一个Array<Double>例如

val doubleArray= arrayOf(0.0)
MyClass().myFunction(doubleArray)

在应用程序的本机部分,我试图像这样访问它:

Java_com_mypackage_MyClass_myFunction(JNIEnv *env, jobject thiz,jdoubleArray myArray) {
jdouble *body_ = (*env)->GetDoubleArrayElements(env, myArray, 0);
}

这就是文档告诉我访问数组值的方式。但是当我这样做时,我得到了一个 SIGABRT。

我在这里想念什么?当你能指出我的方向时将不胜感激:)

标签: androidkotlinjava-native-interface

解决方案


AnArray<Double>java.lang.Double[]JVM 术语中的 a,即对象数组。

你的意思是创建一个DoubleArray,这是一个double[](原语)。


推荐阅读