13

を使用して JNI の C ヘッダー ファイルを生成する際に問題が発生していますjavah

<project-dir>\binディレクトリに立っているときに使用するスクリプトは次のとおりです。

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar com.test.JniTest

リターンとして私は得る:

ERROR: Could not find class file for 'com.test.JniTest'.

クラスJniTestは確かにありますが\com\test

私は何を間違っていますか?

4

3 に答える 3

19

のみ を含むようにクラスパスを指定しますandroid.jar

クラスが保存されている場所も含める必要があります。あなたの場合、それは現在のディレクトリなので、使用する必要があります( Windowsでは.区切り)。;呼び出しは次のようになります。

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar;. com.test.JniTest
于 2011-10-03T13:38:12.733 に答える
18

Linux または MAC-OS を使用している場合は、文字ではなく":"ディレクトリを区切るために使用します。例:classpath";"

javah -cp /Users/Android/android-sdk/platforms/android-xy/android.jar:. com.test.JniTest
于 2013-09-21T05:24:06.577 に答える
10

ディレクトリを次のように変更する必要があり<project-dir>\bin\classesます。次に、次のコマンドを実行します。

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar;. com.test.JniTest


次のコマンド ファイルを使用してヘッダーを生成 jHdr.cmdしています: デスクトップ上:

@echo on
SET PLATFORM=android-8
SET ANDROID_SDK_ROOT=C:\Android\android-sdk
SET PRJ_DIR=D:\Workspaces\sqLite\raSQLite
SET CLASS_PKG_PREFIX=ra.sqlite
cd %PRJ_DIR%\bin\classes
javah -classpath %ANDROID_SDK_ROOT%\platforms\%PLATFORM%\android.jar;.  %CLASS_PKG_PREFIX%.%~n1
pause


必要に応じて変数を調整します...
このファイルをデスクトップに置き、.javaファイルをecriseからにドラッグしますjHdr.cmd。結果は%PRJ_DIR%\bin\classesディレクトリの下にあります

于 2012-09-21T12:52:13.450 に答える