3

OpenCV4Android ライブラリを使用して、Android アプリケーションに JNI を使用しようとしています。opencv ライブラリを使用せずにヘッダー ファイルを生成できますが、クラスが何かをインポートするたびにエラーが発生します。ライブラリにリンクする必要があると思いますが、その方法がわかりませんか? Windows 8.1 64 ビット マシンで cygwin を使用しています。

元の出力:

$ 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 の後の「/」を削除
  • 「icam/」の後にネイティブRDEを追加
  • 「icam/」の後にnativeRDE.classを追加

助けてくれてありがとう。

4

3 に答える 3

5

Javah は、完全修飾クラス名とクラスパスを取ります。クラス名は完全なパッケージ名でなければなりません。
元:fullPackageName.className

クラス パスは bin フォルダーではなく src フォルダーです クラスパスはc\Users\Majid\Documents\OpenCV4Android\iCam\src

Javah -jni -classpath C:\ProjectName\src com.abc.YourClassName

于 2014-08-14T14:50:03.367 に答える