Android C++;-SIGSEGV在向量上做推回操作<;Mat>;
我正在开发一个Android应用程序,我的原生代码中有这个问题 这些向量是全局的Android C++;-SIGSEGV在向量上做推回操作<;Mat>;,android,c++,opencv,vector,mat,Android,C++,Opencv,Vector,Mat,我正在开发一个Android应用程序,我的原生代码中有这个问题 这些向量是全局的 vector<Mat> listaMatDes; vector<Mat> listaMatKey; vector<int> listaCols; vector<int> listaRows; 但我不知道为什么。尝试分离列表数据。向后推(aux\u des->clone())在: Mat m = aux_des->clone(); listaMatDes.pus
vector<Mat> listaMatDes;
vector<Mat> listaMatKey;
vector<int> listaCols;
vector<int> listaRows;
但我不知道为什么。尝试分离
列表数据。向后推(aux\u des->clone())代码>在:
Mat m = aux_des->clone();
listaMatDes.push_back(m);
通过这种方式,您可以看到错误是否真的存在于push_back中,我会说它可能存在于克隆中。编程一整天让您发疯(而且很愚蠢,至少对我来说是这样),我从java代码中传递了一个本地mat地址数组(long[]使用函数getNativeObjAddr()创建)它返回了mat存储器中的地址),所以它不起作用
我通过创建一个长数组作为类字段并传递这个数组来解决这个问题
listaMatDes.push_back(aux_des->clone());
Mat m = aux_des->clone();
listaMatDes.push_back(m);