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

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

概述我目前正在用ndk实现一个android函数.我在java中声明了这个函数public static native void calculate(float[] rgb,float factor); 然后,我写了C函数:JNIEXPORT void JNICALL Java_<package>_calculate( JNIEnv *

我目前正在用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_
总结

以上是内存溢出为你收集整理的java – 写入jfloat数组时获取’致命信号11(SIGSEGV)在0x00000010(代码= 1)’全部内容,希望文章能够帮你解决java – 写入jfloat数组时获取’致命信号11(SIGSEGV)在0x00000010(代码= 1)’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1140072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)