java – 写入jfloat数组时获取’致命信号11(SIGSEGV)在0x00000010(代码= 1)’

前端之家收集整理的这篇文章主要介绍了java – 写入jfloat数组时获取’致命信号11(SIGSEGV)在0x00000010(代码= 1)’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我目前正在用ndk实现一个android函数.
我在java中声明了这个函数

public static native void calculate(float[] rgb,float factor);

然后,我写了C函数

JNIEXPORT void JNICALL Java_

但是,每当我尝试使用数组和某个值调用函数时,我都会收到logcat消息:

A / libc(16064):致命信号11(SIGSEGV)位于0x00000010(代码= 1)

之后,应用程序崩溃了.我发现在写入浮点值时总会出现这种情况.阅读不会导致崩溃.

我有什么不对吗?是不是可以写出数组值?

最佳答案
我找到了解决方案!
出于某种原因,使用null值作为数组调用函数.但是,rgb == NULL检查没有被触发(我不知道是出于哪个原因).我通过在获取值之前添加第二个检查来解决问题

JNIEXPORT void JNICALL Java_
原文链接:https://www.f2er.com/android/430681.html

猜你在找的Android相关文章