首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:信号11 (SIGSEGV),代码1

错误:信号11 (SIGSEGV),代码1
EN

Stack Overflow用户
提问于 2015-10-21 16:39:03
回答 1查看 420关注 0票数 0

我正在调用C++函数,给出了以下错误:signal 11 (SIGSEGV), code 1崩溃转储是:

代码语言:javascript
复制
Build fingerprint: 'google/hammerhead/hammerhead:6.0/MRA58K/2256973:user/release-keys'
pid: 19580, tid: 19706, name: Thread-6405  >>> com.adhamenaya <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xfa0
Stack frame 10-21 19:25:04.423   200   200 F DEBUG   :     #00 pc 0041c59e  /data/app/com.adhamenaya-2/lib/arm/libGrafty.so (cv::Mat::copyTo(cv::_Outp
utArray const&) const+173): Routine cv::Mat::copyTo(cv::_OutputArray const&) const at ??:?
Stack frame 10-21 19:25:04.423   200   200 F DEBUG   :     #01 pc 0023b034  /data/app/com.adhamenaya-2/lib/arm/libGrafty.so (cv::Mat::clone() const+56
): Routine cv::Mat::clone() const at D:/scryptech/ndk_project/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/mat.inl.hpp:628 (discriminator 1)

Stack frame 10-21 19:25:04.423   200   200 F DEBUG   :     #02 pc 0023b3a4  /data/app/com.adhamenaya-2/lib/arm/libGrafty.so (GraftySystem::setCurrentF
rame(cv::Mat&)+44): Routine GraftySystem::setCurrentFrame(cv::Mat&) at C:\Users\aenaya\git\GraftyAndroid\GraftyAndroid/jni/grafty-system-settings.cpp:
39
Stack frame 10-21 19:25:04.423   200   200 F DEBUG   :     #03 pc 002b339c  /data/app/com.adhamenaya-2/lib/arm/libGrafty.so (Java_com_adhamenaya_Nativ
e_runGrafty+492): Routine Java_com_adhamenaya_Native_runGrafty at C:\Users\aenaya\git\GraftyAndroid\GraftyAndroid/jni/grafty-hr-main.cpp:96 (discrimin
ator 1)
Stack frame 10-21 19:25:04.423   200   200 F DEBUG   :     #04 pc 0036a627  /data/app/com.adhamenaya-2/oat/arm/base.odex (offset 0x29c000) (byte[] com
.adhamenaya.Native.runGrafty(java.lang.String, java.lang.String, java.lang.String, java.lang.Long)+170)
Stack frame 10-21 19:25:04.423   200   200 F DEBUG   :     #05 pc 00369f33  /data/app/com.adhamenaya-2/oat/arm/base.odex (offset 0x29c000) (void com.a
dhamenaya.MainActivity$2.run()+574)
Stack frame 10-21 19:25:04.424   200   200 F DEBUG   :     #06 pc 729298d1  /data/dalvik-cache/arm/system@framework@boot.oat (offset 0x1eb1000)

地点:grafty-hr-main.cpp:96

代码语言:javascript
复制
JNIEXPORT jbyteArray JNICALL Java_com_adhamenaya_Native_runGrafty(JNIEnv * env,
        jobject obj, jstring faceCascadeFile, jstring noseCascadeFile,
        jstring landmarks, jlong frame) {

    cv::Mat& inFrame = *(cv::Mat*) frame;


line 96 >>>>    gsys.setCurrentFrame(inFrame);

以及:

grafty-system-settings.cpp:39

代码语言:javascript
复制
void GraftySystem::setCurrentFrame(cv::Mat& inFrame) {
    cv::Size2d imgRes;
    float resRatio;
line 39 >>>>>   cv::Mat frame = inFrame.clone();

}

以及JNI函数的调用:

代码语言:javascript
复制
Java_com_adhamenaya_Native_runGrafty

是这样的:

代码语言:javascript
复制
private Mat mGray;

    public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
        mRgba = inputFrame.rgba();
        Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_BGRA2GRAY);
        if (mRgba.empty())
            return null;
        else if (mRgba.channels() > 1)
            Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_BGRA2GRAY);
        else
            mGray = mRgba;

        return mRgba;
    }
...
...
result = Native.runGrafty(mFaceCascadeFile,
                        mNoseCascadeFile, mLandmarks,
                        mGray.getNativeObjAddr());

似乎是帧参数中的问题。你能帮我弄清楚是什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-22 12:15:03

只管写

代码语言:javascript
复制
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    mGray = inputFrame.gray()
    return inputFrame.rgba();
}

OpenCV为您处理转换。如果在onCameraFrame()回调中直接调用JNI代码会发生什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33264766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档