Я пытаюсь использовать JNI для приложения Android, используя библиотеку OpenCV4Android. Я могу сгенерировать заголовочный файл без использования opencv-библиотеки, но получаю сообщение об ошибке, когда класс импортирует что-либо. Я предполагаю, что ему нужно связать с библиотекой, но я не уверен, как это сделать? Я использую cygwin на 64-разрядной машине Windows 8.1.Создание файла заголовка с помощью JNI с использованием «javah»
оригинальный выход:
$ javah -jni -classpath ./bin/classes -d jni/ com.example.icam.nativeRDE
Error: Class org.opencv.core.Mat could not be found.
После следующих советов от: Android, generate jni Header Files with javah , show error that can't find org.opencv.core.Mat, я получаю следующий вывод:
$ javah -classpath /cygdrive/c/Users/Majid/Documents/OpenCV4Android/OpenCVLib2.4.8/bin/classes/org/opencv/;/cygdrive/c/Users/Majid/Documents/OpenCV4Android/iCam/bin/classes/com/example/icam/ -jni -d jni/ com.example.icam.nativeRDE
Error: no classes specified
-bash: /cygdrive/c/Users/Majid/Documents/OpenCV4Android/iCam/bin/classes/com/example/icam/: is a directory
Я пробовал:
- удаление '/' после того, как icam
- добавление nativeRDE после 'icam /'
- добавления nativeRDE.class после '/' ICAM
Спасибо за любую помощь.
возможный дубликат [Android, генерировать JNI заголовков файлов с javah, показывают ошибки, которые не могут найти org.opencv.core.Mat] (HTTP: // stackov erflow.com/questions/13438368/android-generate-jni-header-files-with-javah-show-error-that-cant-find-org-o) –
Я пробовал следовать советам из этой темы, но получил ошибки. Я должен был упомянуть об этом свой оригинальный пост, но теперь я его отредактировал. – user3019612
Вы пробовали 'javah -classpath c: \ Users \ Majid \ Documents \ OpenCV4Android \ OpenCVLib2.4.8 \ bin \ classes \ org \ opencv; c: \ Users \ Majid \ Documents \ OpenCV4Android \ iCam \ bin \ classes \ com \ example \ icam -jni -d jni/com.example.icam.nativeRDE'? Или, может быть (у меня нет среды, готовой проверить), вы можете использовать косую черту ** (**) ** (**). Причина в том, что ** javah ** не является ** cygwin ** исполняемым, поэтому он не понимает '/ cygdrive'. Вы уже заметили, что вам нужен ** ";" ** разделитель в Windows, а не ** ":" ** как в [указанной теме] (http://stackoverflow.com/questions/13438368) –