本文是我结合很多的博文总结,主要是参考了http://blog.csdn.net/yanzi1225627/article/details/27863615和一些其他的博文。
因为,我的项目在eclipse上开发是既打算用opencv的java接口,又需要jni开发,所以这个问题的主要解决方案就是:
项目结构:
1.Android.mk文件里面的OPENCV_LIB_TYPE:值设置为SHAERD.
2.在java类中用静态方法调用系统模块opencv_java和自己的模块(我这里是tracker):
static {
if(!OpenCVLoader.initDebug()){
System.out.println("opencv 初始化失败!");
}else{
System.loadLibrary("opencv_java");
System.loadLibrary("tracker");
}
}
3.因为我用的是armeabi-v7a平台,所以在 "\你的opencv安装目录\sdk\native\libs\armeabi-v7a"目录下找到libopencv_java.so把它拷贝到你的工程的libs里面或者libs\armeabi-v7a文件夹下,如下图:
4.把原来需要调用OpencvManager的地方的:
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_11, this, mLoaderCallback);
改为:
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
这样,你就可以删除手机里面的opencvmanager啦~