使用OpenCV Android时英特尔x86体系结构上的应用程序崩溃

使用OpenCV Android时英特尔x86体系结构上的应用程序崩溃,android,c++,eclipse,opencv,Android,C++,Eclipse,Opencv,我正在Android上使用OpenCV,使用Eclipse作为IDE。 我希望使用OpenCV的Cpp API在Android上进行更快的处理。 为此,我将我的项目转换成C++自然,配置了构建过程,以在Android上使用OpenCV CPP API所需的JNI。 我能够在手机上运行“OpenCV教程2-混合处理”示例(其中包含Cpp部分)(因此基本配置是正确的) 现在我做了一个新的项目,我有C++代码。它可以在基于ARM的手机上完美地编译、安装和运行, 但基于X86的手机(华硕ZeNoPhon

我正在Android上使用OpenCV,使用Eclipse作为IDE。
我希望使用OpenCV的Cpp API在Android上进行更快的处理。
为此,我将我的项目转换成C++自然,配置了构建过程,以在Android上使用OpenCV CPP API所需的JNI。 我能够在手机上运行“OpenCV教程2-混合处理”示例(其中包含Cpp部分)(因此基本配置是正确的)

现在我做了一个新的项目,我有C++代码。它可以在基于ARM的手机上完美地编译、安装和运行,
但基于X86的手机(华硕ZeNoPhone 2)崩溃了,瞬间执行达到C++代码。 确切地说,当任何函数从C++调用(如Canny(…))时,App崩溃,其他变量声明(比如变量声明)不会崩溃应用程序。p> 请提前帮助并感谢您

我已将x86作为ABI包含在Application.mk中

/*** Application.mk ***/
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := x86 armeabi-v7a
APP_PLATFORM := android-8

下面是从OnFrror方法

调用的C++代码
#include <jni.h>
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace std;
using namespace cv;

extern "C" {
JNIEXPORT void JNICALL Java_com_example_javaapitest_MainActivity_processImage(JNIEnv* jobject, jlong addrRgba, jlong addrGray);

JNIEXPORT void JNICALL Java_com_example_javaapitest_MainActivity_processImage(JNIEnv* jobject, jlong addrRgba, jlong addrGray,jlong addrTemp){
    Mat& rgb = *(Mat*)addrRgba;
    Mat& gray = *(Mat*)addrGray;
    Mat& temp = *(Mat*)addrTemp;
    RNG rng(12345);
    vector<vector<Point> > contours;
    vector<Vec4i> hierarchy;

    /// Detect edges using canny
    /*********Crashes on below line****************/
    Canny( gray, temp, 100, 200); 
}
}
#包括
#包括
#包括
#包括
使用名称空间std;
使用名称空间cv;
外部“C”{
JNIEXPORT void JNICALL Java_com_示例_javaapiest_main activity_processImage(JNIEnv*jobject、jlong addrRgba、jlong addrGray);
JNIEXPORT void JNICALL Java\u com\u示例\u javaapitest\u Main Activity\u processImage(JNIEnv*jobject、jlong addrRgba、jlong addrGray、jlong addrTemp){
Mat&rgb=*(Mat*)添加RRGBA;
Mat&gray=*(Mat*)addrGray;
材料和温度=*(材料*)添加RTEMP;
RNG RNG(12345);
矢量等值线;
向量层次;
///使用canny算法检测边缘
/*********线下撞车****************/
坎尼(灰色,温度100200);
}
}