Javah仍然无法在OSX / Android Studio中找到类文件

时间:2014-10-09 08:50:15

标签: java android macos java-native-interface javah

参考 - > 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添加的分隔符似乎没有分隔符。我试过预先挂起的“:”并没有什么区别。我假设这是详细输出中的错误而不是核心功能。

1 个答案:

答案 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确保它覆盖任何现有文件。