【发布时间】:2019-09-11 16:25:17
【问题描述】:
我正在使用 Opencv sdk for Android 开发实时处理和匹配。
主要的 Opencv 特征逻辑在 JNI 函数中。
问题是有时(只是有时)我的应用程序崩溃而没有错误,所以我在完成算法开发之前忽略了这个问题。
我开始调查这个错误,它肯定在 JNI 部分。
这是我在Log 中遇到的错误
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 27424 (Thread-8)
A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
我在互联网上搜索了很多,我找到了这个解决方案
<activity
android:hardwareAccelerated="false" />
它工作了 2 天,现在我又得到了同样的错误。
有什么问题,我该如何解决?
任何帮助将不胜感激,并在此先感谢您。
编辑
我应该补充一点,我的应用程序从图库中获取参考图像,并使用 Opencv 将其与实时图像馈送进行比较。
如果我从图库中选择了一张图片并且应用程序崩溃了,则该图片将无法再次使用,如果我拍摄一张新图片或之前可以使用的图片,则该应用程序可以正常工作。
【问题讨论】:
-
that image won't work again是什么意思? -
我的意思是,如果我从参考图像中选择该图像,我会得到分段错误的错误
-
您是否有机会尝试修改此图像?例如您错误地写入了这个只读图像
-
不,我只是对它进行分段并将 3 个垫子的数组传递给下一个活动以进行实时处理。
-
我意识到的另一个观察结果是,如果我处理超过 5 帧(这意味着 5 次)应用程序崩溃
标签: android android-ndk java-native-interface segmentation-fault opencv4android