1

参照しました --> JNIで使用中にJavahエラーが発生しました

...そして --> Android - javah がクラスを見つけられない

...まだ仕事に行けません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。「:」を前に付けてみましたが、違いはありません。これは、コア機能ではなく詳細出力のバグであると想定しています。

4

1 に答える 1

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既存のファイルを確実に上書きすることに注意してください。

于 2014-10-09T09:26:10.940 に答える