У меня была точно такая же проблема, и после нескольких часов ударившись головой о стену, я наконец нашел решение!
Видимо, в OpenCV.mk
, поставляемом с OpenCV 2.3.1, есть ошибка.
Следующая строка:
OPENCV_MODULES := contrib calib3d objdetect features2d video imgproc highgui ml legacy flann core
Должна быть заменена на:
OPENCV_MODULES := contrib legacy objdetect calib3d features2d video highgui ml imgproc flann core
Выглядит очень похожено есть небольшая разница, если вы посмотрите на порядок модулей.
Вы можете понять логику этого изменения, взглянув на файл OpenCVConfig.cmake
, который гласит: #libraries order is very important because linker from Android NDK is one-pass linker
Если это так важно, почему его не включили в оригинал OpenCV.mk
?????