Как решить сборку OpenCV Samples с собственным OpenCv из http://opencv.itseez.com?
Я сам столкнулся с этой проблемой.Я использовал бета-версию OpenCV 2.4, и проблема возникла при создании примера учебника, в котором используется собственный код OpenCV.
Я исправил его и хочу попытаться объяснить, как мне это удалось.
Полагаю,вы создаете библиотеку следующим образом в eclipse: бинарный пакет Android, использующий с NDK
Оба проекта, проект OpenCV и пример проекта находятся в одной рабочей области.проект OpenCV помечен как библиотека.
Различия в настройках проекта между openCV2.3 и 2.4beta:
2.3:
- настройки проекта-> Android -> добавить ссылку -> PathToOpenCV-2.3 * настройки проекта * - 1023 *
- -> Java Build Path -> Проекты: Добавить проект "OpenCV-2.3"
- настройки проекта -> Java Build Path -> Порядок и экспорт: «OpenCV-2.3» вверху, флажок установлен
2,4
- настройки проекта -> Android -> добавить ссылку -> PathToOpenCV-2.4beta другие 2 настройки не нужны
Когда вы делаете это, проекты Java работают.Однако, когда вы включаете эти проекты lib, а затем пытаетесь создать собственные образцы, файлы <libname>.so
копируются и оказываются в папке примеров проектов в /obj/local/armeabi-v7a/
с некоторыми другими файлами *.a
из готового проекта OpenCV.Оттуда NDK строит файлы в папке /lib
, которые позже включаются в файл apk (я думаю).Затем запускается Java-часть Eclipse.При этом обнаруживается дубликат файлов .so
, которые находят их в библиотеке OpenCV, а теперь и в вашем образце библиотеки, поэтому он запрещает создание нового файла apk.(Может быть обходной путь, чтобы сделать это с дублирующимися записями, я не следовал за этим. См. Дублирующий файл при развертывании apk ).
Чтобы избежать дубликатов, я убрал опцию в свойствах проекта "Настройки проекта -> Android -> Добавить ссылку -> PathToOpenCV-2.4beta", затем NDK импортирует библиотеки и строит их (так как путинастроенный в цепочке сборки Eclipse из 2-й ссылки выше), образец знает некоторый OpenCV из двоичных файлов, хотя он не включает весь проект OpenCV.
Я не знаю, работает ли это, когда вам нужна поддержка Java для OpenCV.