use*_*612 3 java java-native-interface android opencv javah
我正在尝试使用OpenCV4Android库将JNI用于Android应用程序.我可以在不使用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.
Run Code Online (Sandbox Code Playgroud)
按照以下建议:Android,使用javah生成jni头文件,显示无法找到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
Run Code Online (Sandbox Code Playgroud)
我试过了:
谢谢你的帮助.
小智 5
Javah采用完全限定的类名和类路径.类名必须包含完整的包名.
例如:fullPackageName.className
类路径是你的src文件夹而不是bin文件夹你的classpath必须是 c\Users\Majid\Documents\OpenCV4Android\iCam\src
Javah -jni -classpath C:\ProjectName\src com.abc.YourClassName
***I am using Window 10 and Android Studio 2.1.2.***
Run Code Online (Sandbox Code Playgroud)
假设APP(JNIP我的应用名称)的位置是
Run Code Online (Sandbox Code Playgroud)E:\test\JNIP and you wrote native methods in JniExample.java file
“ JDK位置”为
C:\Program Files\Java\jdk1.8.0_51\bin>
Run Code Online (Sandbox Code Playgroud)
“ JNI文件夹位置”为
E:\test\JNIP\app\src\main\JNI (where, you want to create header file)
Run Code Online (Sandbox Code Playgroud)
课堂位置现为
E:\test\JNIP\app\build\intermediates\classes\debug\com\example\mpankaj\jnip\JniExample.java
Run Code Online (Sandbox Code Playgroud)
Android.jar的位置是
C:/Users/mpankaj/AppData/Local/Android/Sdk/platforms/android-23/android.jar
Run Code Online (Sandbox Code Playgroud)
首先运行以下命令,然后再构建项目
在coommand提示符/终端上写入命令以创建.h文件
javah -d (JNI Folder Location) -classpath (JAR Locaion);(class Location)
Run Code Online (Sandbox Code Playgroud)
使用以上命令详细信息的示例命令
C:/Program Files/Java/jdk1.8.0_51/bin>javah -d E:/test/JNIP/app/src/main/JNI -classpath C:/Users/mpankaj/AppData/Local/Android/Sdk/platforms/android-23/android.jar;E:\test\JNIP\app\build\intermediates\classes\debug com.example.mpankaj.jnip.JniExample
Run Code Online (Sandbox Code Playgroud)
之后,您将获得像 com_example_mpankaj_jnip_JniExample.h 这样的.h文件
| 归档时间: |
|
| 查看次数: |
13056 次 |
| 最近记录: |