参考 - > Javah error while using it in JNI
...和 - > android - javah doesn't find my class
......我仍然无法让javah
工作。具体地说...
我的java类位于:
/Users/HKS/Code/MusicPlayer-Android/dspLibrary/src/main/java/com/company/audio/LibDSP.java`
从此文件夹...
/Users/HKS/Code/MusicPlayer-Android/dspLibrary/src/main/java/`
......我试过跑......
javah com.company.audio.LibDSP
javah -classpath . com.company.audio.LibDSP
javah -classpath /Applications/Android\ Studio.app/sdk/platforms/android-16/android.jar:. -jni com.company.audio.LibDSP
...我也在包含.java
文件的实际文件夹中尝试了这个...
javah LibDSP
javah -classpath . LibDSP
所有人都平常......
error: cannot access com.company.audio.LibDSP
class file for com.company.audio.LibDSP not found
javadoc: error - Class com.company.audio.LibDSP not found.
Error: No classes were specified on the command line. Try -help.
有什么想法吗?
附带的详细日志在搜索路径中显示一些奇怪的内容......
[ Search Path: /System/Library/Java/JavaVirtualMachines....../Contents/Classes/charsets.jar//Applications/Android Studio.app/sdk/platforms/android-16/android.jar:. ]
请注意,-classpath
添加的分隔符似乎没有分隔符。我试过预先挂起的“:”并没有什么区别。我假设这是详细输出中的错误而不是核心功能。
答案 0 :(得分:4)
知道了!它需要编译的类,而不是源代码。此外,类文件夹 - ./build/intermediates/classes/debug
在Android Studio中对项目隐藏。
这是最终为我工作的路线。从我的模块的根文件夹(/Users/HKS/Code/MusicPlayer-Android/dspLibrary/
):
javah -classpath /Applications/Android\ Studio.app/sdk/platforms/android-16/android.jar:./build/intermediates/classes/debug -jni -d src/main/jni -force com.company.audio.LibDSP
注意-d
标志是输出文件夹,-force
确保它覆盖任何现有文件。